diff --git a/.gitignore b/.gitignore index 0745d0d..e813dfa 100644 --- a/.gitignore +++ b/.gitignore @@ -1,4 +1,4 @@ *.exe .qodo *.sqlite -testfiles +.cursor/rules diff --git a/testfiles/Afflictions.xml b/testfiles/Afflictions.xml new file mode 100644 index 0000000..724e138 --- /dev/null +++ b/testfiles/Afflictions.xml @@ -0,0 +1,74 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file diff --git a/testfiles/format_test_cook.yml b/testfiles/format_test_cook.yml new file mode 100644 index 0000000..38c54dd --- /dev/null +++ b/testfiles/format_test_cook.yml @@ -0,0 +1,8 @@ +- name: "JSONFormattingTest" + json: true + lua: | + data.version = "2.0.0" + data.enabled = true + data.settings.timeout = 60 + return true + files: ["testfiles/test3.json"] \ No newline at end of file diff --git a/testfiles/json_global_test_cook.yml b/testfiles/json_global_test_cook.yml new file mode 100644 index 0000000..4cfc33f --- /dev/null +++ b/testfiles/json_global_test_cook.yml @@ -0,0 +1,15 @@ +# Test with global JSON flag (no json: true in commands) +- name: "JSONArrayMultiply" + lua: | + for i, item in ipairs(data.items) do + data.items[i].value = item.value * 2 + end + return true + files: ["testfiles/test2.json"] + +- name: "JSONObjectUpdate" + lua: | + data.version = "3.0.0" + data.enabled = false + return true + files: ["testfiles/test2.json"] \ No newline at end of file diff --git a/testfiles/json_test_cook.yml b/testfiles/json_test_cook.yml new file mode 100644 index 0000000..452656e --- /dev/null +++ b/testfiles/json_test_cook.yml @@ -0,0 +1,32 @@ +# Global modifiers +- modifiers: + multiply: 2.0 + new_version: "2.0.0" + +# JSON mode examples +- name: "JSONArrayMultiply" + json: true + lua: | + for i, item in ipairs(data.items) do + data.items[i].value = item.value * $multiply + end + return true + files: ["testfiles/test.json"] + +- name: "JSONObjectUpdate" + json: true + lua: | + data.version = $new_version + data.enabled = true + return true + files: ["testfiles/test.json"] + +- name: "JSONNestedModify" + json: true + lua: | + if data.settings and data.settings.performance then + data.settings.performance.multiplier = data.settings.performance.multiplier * 1.5 + data.settings.performance.enabled = true + end + return true + files: ["testfiles/test.json"] \ No newline at end of file diff --git a/testfiles/test.json b/testfiles/test.json new file mode 100644 index 0000000..b51e832 --- /dev/null +++ b/testfiles/test.json @@ -0,0 +1,30 @@ +{ + "name": "test-config", + "version": "1.0.0", + "enabled": false, + "settings": { + "timeout": 30, + "retries": 3, + "performance": { + "multiplier": 1.0, + "enabled": false + } + }, + "items": [ + { + "id": 1, + "name": "item1", + "value": 10 + }, + { + "id": 2, + "name": "item2", + "value": 20 + }, + { + "id": 3, + "name": "item3", + "value": 30 + } + ] +} \ No newline at end of file diff --git a/testfiles/test2.json b/testfiles/test2.json new file mode 100644 index 0000000..33501a1 --- /dev/null +++ b/testfiles/test2.json @@ -0,0 +1,30 @@ +{ + "enabled": false, + "items": [ + { + "id": 1, + "name": "item1", + "value": 80 + }, + { + "id": 2, + "name": "item2", + "value": 160 + }, + { + "id": 3, + "name": "item3", + "value": 240 + } + ], + "name": "test-config", + "settings": { + "performance": { + "enabled": true, + "multiplier": 1.5 + }, + "retries": 3, + "timeout": 30 + }, + "version": "3.0.0" +} \ No newline at end of file diff --git a/testfiles/test3.json b/testfiles/test3.json new file mode 100644 index 0000000..32adbf7 --- /dev/null +++ b/testfiles/test3.json @@ -0,0 +1,25 @@ +{ + "enabled": true, + "items": [ + { + "id": 1, + "name": "item1", + "value": 10 + }, + { + "id": 2, + "name": "item2", + "value": 20 + } + ], + "name": "test-config", + "settings": { + "performance": { + "enabled": false, + "multiplier": 1 + }, + "retries": 3, + "timeout": 60 + }, + "version": "2.0.0" +} \ No newline at end of file diff --git a/testfiles/test3_backup.json b/testfiles/test3_backup.json new file mode 100644 index 0000000..32adbf7 --- /dev/null +++ b/testfiles/test3_backup.json @@ -0,0 +1,25 @@ +{ + "enabled": true, + "items": [ + { + "id": 1, + "name": "item1", + "value": 10 + }, + { + "id": 2, + "name": "item2", + "value": 20 + } + ], + "name": "test-config", + "settings": { + "performance": { + "enabled": false, + "multiplier": 1 + }, + "retries": 3, + "timeout": 60 + }, + "version": "2.0.0" +} \ No newline at end of file diff --git a/testfiles/test4.json b/testfiles/test4.json new file mode 100644 index 0000000..f49a6c9 --- /dev/null +++ b/testfiles/test4.json @@ -0,0 +1,25 @@ +{ + "name": "test-config", + "version": "1.0.0", + "enabled": false, + "settings": { + "timeout": 30, + "retries": 3, + "performance": { + "multiplier": 1.0, + "enabled": false + } + }, + "items": [ + { + "id": 1, + "name": "item1", + "value": 10 + }, + { + "id": 2, + "name": "item2", + "value": 20 + } + ] +} \ No newline at end of file