diff --git a/.github/workflows/order-scripts.yml b/.github/workflows/order-scripts.yml new file mode 100644 index 0000000..5039028 --- /dev/null +++ b/.github/workflows/order-scripts.yml @@ -0,0 +1,18 @@ +name: Order Scripts + +on: + push: + branches: + - ordered + +permissions: + contents: write + +jobs: + restructure: + runs-on: ubuntu-latest + steps: + - uses: devdinc/restructure-action@v0.1.1 + with: + source-ref: stable + restructure-file: .restructure diff --git a/.restructure b/.restructure new file mode 100644 index 0000000..64b3cec --- /dev/null +++ b/.restructure @@ -0,0 +1,7 @@ +using scripts + +prefix: + 0 libs/singlelinesection.sk + 1 libs/functionsv2.sk + 2 libs/routines.sk + 3 . diff --git a/README.md b/README.md index 48c0399..38d5b1d 100644 --- a/README.md +++ b/README.md @@ -6,6 +6,8 @@ Personal Skript files created for various purposes. All documentation, setup instructions, and usage examples are maintained in the project [wiki](https://github.com/devdinc/skripts/wiki). +For technical details [![Ask DeepWiki](https://deepwiki.com/badge.svg)](https://deepwiki.com/devdinc/skripts) + ## Purpose The wiki includes: @@ -39,7 +41,4 @@ Skript loads files alphabetically, with folders being prioritized. To control lo Currents plans include: - multiline lambda expression - making the test framework support extending over the skriptlang native test suit - ---- - -**For technical details, I recommend you to use deepwiki** +- Auto casting for primitives, pdc.sk(new Byte,Integer etc) diff --git a/tests/pdc.sk b/tests/pdc.sk new file mode 100644 index 0000000..bbbf0be --- /dev/null +++ b/tests/pdc.sk @@ -0,0 +1,80 @@ +import: + java.util.HashMap + java.lang.Integer + java.lang.Byte + +test "pdc basic set/get with typed pdt": + + set {_key} to namespaced-key "plugin:test_int" + + set {_key} within test-world for pdt integer to new Integer(42) + assert {_key} within test-world for pdt integer is 42 with "typed pdt get failed" + + +test "pdc overwrite typed value": + + set {_key} to namespaced-key "plugin:test_overwrite" + + set {_key} within test-world for pdt string to "a" + set {_key} within test-world for pdt string to "b" + + assert {_key} within test-world for pdt string is "b" with "overwrite failed" + + +test "pdc delete typed value": + + set {_key} to namespaced-key "plugin:test_delete" + + set {_key} within test-world for pdt long to 100 + delete {_key} within test-world for pdt long + + assert {_key} within test-world for pdt long is not set with "delete failed" + + +test "pdc object serialization (byte_array implicit)": + + set {_key} to namespaced-key "plugin:test_object" + + set {_obj} to new HashMap() + {_obj}.put("a", 1) + {_obj}.put("b", 2) + + set {_key} within test-world to {_obj} + + set {_out} to {_key} within test-world + assert {_out}.get("a") is 1 with "object deserialize failed (a)" + assert {_out}.get("b") is 2 with "object deserialize failed (b)" + + +test "pdc remove object via null": + + set {_key} to namespaced-key "plugin:test_object_remove" + + set {_key} within test-world to "temp" + set {_key} within test-world to null + + assert {_key} within test-world is not set with "object remove via null failed" + + +test "pdc holder vs direct pdc equivalence": + + set {_key} to namespaced-key "plugin:test_holder" + set {_pdc} to test-world's pdc + + set {_key} within test-world for pdt byte to new Byte(7) + assert {_key} within {_pdc} for pdt byte is 7 with "direct pdc access failed" + + +test "pdc boolean pdt": + + set {_key} to namespaced-key "plugin:test_bool" + + set {_key} within test-world for pdt boolean to true + assert {_key} within test-world for pdt boolean is true with "boolean pdt failed" + + +test "pdc default object missing returns none": + + set {_key} to namespaced-key "plugin:test_missing" + + assert {_key} within test-world is not set with "missing object did not return none"