From be2f2206240693bc57689ade5042fd671c8b2b1d Mon Sep 17 00:00:00 2001 From: Nathan Vasse Date: Wed, 4 Jan 2023 15:50:18 +0100 Subject: [PATCH] =?UTF-8?q?=E2=9C=85(tokens)=20mock=20default=20tokens=20i?= =?UTF-8?q?n=20tests?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit If we don't do that we will have to update all tests each time the default value of a token is changed. --- packages/tokens/jest.config.ts | 9 +++++++++ packages/tokens/src/bin/Generators/CssGenerator.spec.ts | 4 ++-- packages/tokens/src/bin/Generators/JsGenerator.spec.ts | 2 +- packages/tokens/src/bin/Generators/TsGenerator.spec.ts | 2 +- packages/tokens/src/bin/__mocks__/cunningham.dist.js | 8 ++++++++ packages/tokens/src/bin/tests/Cunningham.spec.ts | 9 +++++++++ packages/tokens/src/bin/tests/Setup.ts | 1 + 7 files changed, 31 insertions(+), 4 deletions(-) create mode 100644 packages/tokens/src/bin/__mocks__/cunningham.dist.js create mode 100644 packages/tokens/src/bin/tests/Setup.ts diff --git a/packages/tokens/jest.config.ts b/packages/tokens/jest.config.ts index 4e47f87..69c3075 100644 --- a/packages/tokens/jest.config.ts +++ b/packages/tokens/jest.config.ts @@ -4,6 +4,15 @@ const jestConfig: JestConfigWithTsJest = { preset: "ts-jest", testEnvironment: "node", moduleDirectories: ["node_modules", "src/bin"], + setupFiles: ["/src/bin/tests/Setup.ts"], + transform: { + "^.+\\.tsx?$": [ + "ts-jest", + // required due to custom location of tsconfig.json configuration file + // https://kulshekhar.github.io/ts-jest/docs/getting-started/options/tsconfig + { tsconfig: "./src/bin/tsconfig.json" }, + ], + }, }; export default jestConfig; diff --git a/packages/tokens/src/bin/Generators/CssGenerator.spec.ts b/packages/tokens/src/bin/Generators/CssGenerator.spec.ts index d9a7a00..38cf66e 100644 --- a/packages/tokens/src/bin/Generators/CssGenerator.spec.ts +++ b/packages/tokens/src/bin/Generators/CssGenerator.spec.ts @@ -24,8 +24,8 @@ describe("CssGenerator", () => { await run(["", "", "-g", "css", opt, "html"]); expect(fs.existsSync(cssTokensFile)).toEqual(true); expect(fs.readFileSync(cssTokensFile).toString()).toEqual(`html { -\t--c--colors--primary: #055FD2; -\t--c--colors--secondary: #DA0000; +\t--c--theme--colors--primary: #055FD2; +\t--c--theme--colors--secondary: #DA0000; }`); }; diff --git a/packages/tokens/src/bin/Generators/JsGenerator.spec.ts b/packages/tokens/src/bin/Generators/JsGenerator.spec.ts index f6712ac..e6afa21 100644 --- a/packages/tokens/src/bin/Generators/JsGenerator.spec.ts +++ b/packages/tokens/src/bin/Generators/JsGenerator.spec.ts @@ -24,7 +24,7 @@ describe("JsGenerator", () => { await run(["", "", "-g", "js"]); expect(fs.existsSync(tokensFile)).toEqual(true); expect(fs.readFileSync(tokensFile).toString()).toEqual( - `export const tokens = {"colors":{"primary":"#055FD2","secondary":"#DA0000"}};` + `export const tokens = {"theme":{"colors":{"primary":"#055FD2","secondary":"#DA0000"}}};` ); }); }); diff --git a/packages/tokens/src/bin/Generators/TsGenerator.spec.ts b/packages/tokens/src/bin/Generators/TsGenerator.spec.ts index 7463772..6547e02 100644 --- a/packages/tokens/src/bin/Generators/TsGenerator.spec.ts +++ b/packages/tokens/src/bin/Generators/TsGenerator.spec.ts @@ -24,7 +24,7 @@ describe("TsGenerator", () => { await run(["", "", "-g", "ts"]); expect(fs.existsSync(tokensFile)).toEqual(true); expect(fs.readFileSync(tokensFile).toString()).toEqual( - `export const tokens = {"colors":{"primary":"#055FD2","secondary":"#DA0000"}};` + `export const tokens = {"theme":{"colors":{"primary":"#055FD2","secondary":"#DA0000"}}};` ); }); }); diff --git a/packages/tokens/src/bin/__mocks__/cunningham.dist.js b/packages/tokens/src/bin/__mocks__/cunningham.dist.js new file mode 100644 index 0000000..575f5ad --- /dev/null +++ b/packages/tokens/src/bin/__mocks__/cunningham.dist.js @@ -0,0 +1,8 @@ +module.exports = { + theme: { + colors: { + primary: "#055FD2", + secondary: "#DA0000", + }, + }, +}; diff --git a/packages/tokens/src/bin/tests/Cunningham.spec.ts b/packages/tokens/src/bin/tests/Cunningham.spec.ts index a175fda..cc049b4 100644 --- a/packages/tokens/src/bin/tests/Cunningham.spec.ts +++ b/packages/tokens/src/bin/tests/Cunningham.spec.ts @@ -11,6 +11,15 @@ jest.mock("../Paths", () => ({ workPath: () => __dirname, })); +jest.mock("../cunningham.dist.js", () => ({ + theme: { + colors: { + primary: "#055FD2", + secondary: "#DA0000", + }, + }, +})); + const runBin = async (args: string) => { const exec = util.promisify(child_process.exec); const promise = exec( diff --git a/packages/tokens/src/bin/tests/Setup.ts b/packages/tokens/src/bin/tests/Setup.ts new file mode 100644 index 0000000..4754b99 --- /dev/null +++ b/packages/tokens/src/bin/tests/Setup.ts @@ -0,0 +1 @@ +jest.mock("../cunningham.dist.js");