From cfb5d684593528599c6b19df9465ad985dc8c184 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=C5=A0t=C4=9Bp=C3=A1n=20Gran=C3=A1t?= Date: Mon, 20 Jan 2025 16:03:48 +0100 Subject: [PATCH] chore: extract custom config --- test/e2e/extractCustom.test.ts | 94 ++++++++++++++++++++++++---------- 1 file changed, 66 insertions(+), 28 deletions(-) diff --git a/test/e2e/extractCustom.test.ts b/test/e2e/extractCustom.test.ts index 857d28bb..59d2bb11 100644 --- a/test/e2e/extractCustom.test.ts +++ b/test/e2e/extractCustom.test.ts @@ -1,5 +1,6 @@ import { fileURLToPathSlash } from './utils/toFilePath.js'; import { run } from './utils/run.js'; +import { createTmpFolderWithConfig, removeTmpFolder } from './utils/tmp.js'; const FIXTURES_PATH = new URL('../__fixtures__/', import.meta.url); const FAKE_PROJECT = new URL('./customExtractors/', FIXTURES_PATH); @@ -11,31 +12,68 @@ const TS_EXTRACTOR = fileURLToPathSlash( new URL('./extract-ts.ts', FAKE_PROJECT) ); -it('successfully uses a custom extractor written in JS', async () => { - const out = await run( - ['extract', 'print', '--extractor', JS_EXTRACTOR, '--patterns', TEST_FILE], - undefined, - 50e3 - ); - - console.log(out.stdout); - expect(out.code).toBe(0); - expect(out.stdout).toContain('STR_CRUDE'); - expect(out.stdout).toContain('STR_WORKING'); - expect(out.stdout).toContain('STR_NEW'); - expect(out.stdout).toContain('STR_PRODUCTION'); -}, 60e3); - -it('successfully uses a custom extractor written in TS', async () => { - const out = await run( - ['extract', 'print', '--extractor', TS_EXTRACTOR, '--patterns', TEST_FILE], - undefined, - 50e3 - ); - - expect(out.code).toBe(0); - expect(out.stdout).toContain('STR_CRUDE'); - expect(out.stdout).toContain('STR_WORKING'); - expect(out.stdout).toContain('STR_NEW'); - expect(out.stdout).toContain('STR_PRODUCTION'); -}, 60e3); +describe('custom extractor', () => { + it('successfully uses a custom extractor written in JS (arg)', async () => { + afterEach(async () => { + await removeTmpFolder(); + }); + + const out = await run( + [ + 'extract', + 'print', + '--extractor', + JS_EXTRACTOR, + '--patterns', + TEST_FILE, + ], + undefined, + 50e3 + ); + + expect(out.code).toBe(0); + expect(out.stdout).toContain('STR_CRUDE'); + expect(out.stdout).toContain('STR_WORKING'); + expect(out.stdout).toContain('STR_NEW'); + expect(out.stdout).toContain('STR_PRODUCTION'); + }, 60e3); + + it('successfully uses a custom extractor written in JS (config)', async () => { + const { configFile } = await createTmpFolderWithConfig({ + extractor: JS_EXTRACTOR, + patterns: [TEST_FILE], + }); + const out = await run( + ['-c', configFile, 'extract', 'print'], + undefined, + 50e3 + ); + + expect(out.code).toBe(0); + expect(out.stdout).toContain('STR_CRUDE'); + expect(out.stdout).toContain('STR_WORKING'); + expect(out.stdout).toContain('STR_NEW'); + expect(out.stdout).toContain('STR_PRODUCTION'); + }, 60e3); + + it('successfully uses a custom extractor written in TS', async () => { + const out = await run( + [ + 'extract', + 'print', + '--extractor', + TS_EXTRACTOR, + '--patterns', + TEST_FILE, + ], + undefined, + 50e3 + ); + + expect(out.code).toBe(0); + expect(out.stdout).toContain('STR_CRUDE'); + expect(out.stdout).toContain('STR_WORKING'); + expect(out.stdout).toContain('STR_NEW'); + expect(out.stdout).toContain('STR_PRODUCTION'); + }, 60e3); +});