From a90456b92d21fd15e4b27b2ec3eda5d0834de75e Mon Sep 17 00:00:00 2001 From: Naiyer <19614213+naiyerasif@users.noreply.github.com> Date: Tue, 16 Apr 2024 21:55:00 +0530 Subject: [PATCH] test: split combination and scenario tests --- test/{fixtures.js => combination.fixtures.js} | 21 ------------ test/combination.test.js | 14 ++++++++ test/{parser.test.js => macro.js} | 12 +------ test/scenario.fixtures.js | 33 +++++++++++++++++++ test/scenario.test.js | 20 +++++++++++ 5 files changed, 68 insertions(+), 32 deletions(-) rename test/{fixtures.js => combination.fixtures.js} (91%) create mode 100644 test/combination.test.js rename test/{parser.test.js => macro.js} (60%) create mode 100644 test/scenario.fixtures.js create mode 100644 test/scenario.test.js diff --git a/test/fixtures.js b/test/combination.fixtures.js similarity index 91% rename from test/fixtures.js rename to test/combination.fixtures.js index b1e86af..f0d9309 100644 --- a/test/fixtures.js +++ b/test/combination.fixtures.js @@ -32,27 +32,6 @@ const prepareFixtures = (fixtures) => { }; const fixtures = [ - // edge cases - { - input: [''], - output: {}, - }, - { - input: ['{}'], - output: {}, - }, - { - input: ['true="false"'], - output: { - true: "false", - }, - }, - { - input: ['maxRun="1"'], - output: { - maxRun: "1", - }, - }, // isolated { input: ['{1}'], diff --git a/test/combination.test.js b/test/combination.test.js new file mode 100644 index 0000000..63c8aff --- /dev/null +++ b/test/combination.test.js @@ -0,0 +1,14 @@ +import test from "ava"; +import FenceParser from "../src/index.js"; +import fixtures from "./combination.fixtures.js"; +import macro from "./macro.js"; + +const parser = new FenceParser(); + +for (const fixture of fixtures) { + const result = parser.parse(fixture.input); + const expected = fixture.output; + const title = `input "${fixture.input}"`; + + test(title, macro, result, expected); +} diff --git a/test/parser.test.js b/test/macro.js similarity index 60% rename from test/parser.test.js rename to test/macro.js index d58d170..af229fe 100644 --- a/test/parser.test.js +++ b/test/macro.js @@ -1,8 +1,4 @@ import test from "ava"; -import FenceParser from "../src/index.js"; -import fixtures from "./fixtures.js"; - -const parser = new FenceParser(); const macro = test.macro({ exec(t, input, expected) { @@ -25,10 +21,4 @@ const macro = test.macro({ } }); -for (const fixture of fixtures) { - const result = parser.parse(fixture.input); - const expected = fixture.output; - const title = `input "${fixture.input}"`; - - test(title, macro, result, expected); -} +export default macro; diff --git a/test/scenario.fixtures.js b/test/scenario.fixtures.js new file mode 100644 index 0000000..133c367 --- /dev/null +++ b/test/scenario.fixtures.js @@ -0,0 +1,33 @@ +const fixtures = [ + { + input: '', + output: {}, + }, + { + input: '{}', + output: {}, + }, + { + input: 'true="false"', + output: { + true: "false", + }, + }, + { + input: 'maxRun="1"', + output: { + maxRun: "1", + }, + }, + { + input: '{1}', + output: { mark: [1] }, + options: { rangeKey: "mark" }, + }, + { + input: '{11..8, 20}', + output: { highlight: [8, 9, 10, 11, 20] }, + } +]; + +export default fixtures; diff --git a/test/scenario.test.js b/test/scenario.test.js new file mode 100644 index 0000000..999689a --- /dev/null +++ b/test/scenario.test.js @@ -0,0 +1,20 @@ +import test from "ava"; +import FenceParser from "../src/index.js"; +import fixtures from "./scenario.fixtures.js"; +import macro from "./macro.js"; + +const parser = new FenceParser(); + +for (const fixture of fixtures) { + let result; + if (fixture.options) { + result = (new FenceParser(fixture.options)).parse(fixture.input); + } else { + result = parser.parse(fixture.input); + } + + const expected = fixture.output; + const title = `input "${fixture.input}"`; + + test(title, macro, result, expected); +}