From a51c1f46aa60df4042881caf621e8141cd96dc77 Mon Sep 17 00:00:00 2001 From: Patrik Oldsberg Date: Thu, 21 Sep 2023 11:11:48 +0200 Subject: [PATCH] backend-test-utils: rename DirectoryMocker -> MockDirectory Signed-off-by: Patrik Oldsberg --- .../MockDirectory.test.ts} | 10 ++++---- .../MockDirectory.ts} | 24 ++++++++++--------- .../src/{files => filesystem}/index.ts | 2 +- packages/backend-test-utils/src/index.ts | 2 +- 4 files changed, 20 insertions(+), 18 deletions(-) rename packages/backend-test-utils/src/{files/DirectoryMocker.test.ts => filesystem/MockDirectory.test.ts} (93%) rename packages/backend-test-utils/src/{files/DirectoryMocker.ts => filesystem/MockDirectory.ts} (90%) rename packages/backend-test-utils/src/{files => filesystem}/index.ts (91%) diff --git a/packages/backend-test-utils/src/files/DirectoryMocker.test.ts b/packages/backend-test-utils/src/filesystem/MockDirectory.test.ts similarity index 93% rename from packages/backend-test-utils/src/files/DirectoryMocker.test.ts rename to packages/backend-test-utils/src/filesystem/MockDirectory.test.ts index 6ebf74b2a4..48b8dcd83d 100644 --- a/packages/backend-test-utils/src/files/DirectoryMocker.test.ts +++ b/packages/backend-test-utils/src/filesystem/MockDirectory.test.ts @@ -14,10 +14,10 @@ * limitations under the License. */ -import { DirectoryMocker } from './DirectoryMocker'; +import { MockDirectory } from './MockDirectory'; -describe('DirectoryMocker', () => { - const mocker = DirectoryMocker.create(); +describe('MockDirectory', () => { + const mocker = MockDirectory.create(); it('should populate a directory with text files', async () => { await mocker.setContent({ @@ -120,10 +120,10 @@ describe('DirectoryMocker', () => { }); describe('cleanup', () => { - let cleanupMocker: DirectoryMocker; + let cleanupMocker: MockDirectory; describe('inner', () => { - cleanupMocker = DirectoryMocker.create(); + cleanupMocker = MockDirectory.create(); it('should populate a directory', async () => { await cleanupMocker.setContent({ diff --git a/packages/backend-test-utils/src/files/DirectoryMocker.ts b/packages/backend-test-utils/src/filesystem/MockDirectory.ts similarity index 90% rename from packages/backend-test-utils/src/files/DirectoryMocker.ts rename to packages/backend-test-utils/src/filesystem/MockDirectory.ts index bf741f6ce2..d7e7d2c2e1 100644 --- a/packages/backend-test-utils/src/files/DirectoryMocker.ts +++ b/packages/backend-test-utils/src/filesystem/MockDirectory.ts @@ -38,8 +38,8 @@ type MockEntry = path: string; }; -export type MockDirectory = { - [name in string]: MockDirectory | string | Buffer; +export type MockDirectoryContent = { + [name in string]: MockDirectoryContent | string | Buffer; }; interface DirectoryMockerOptions { @@ -62,13 +62,13 @@ interface DirectoryMockerContentOptions { shouldReadAsText?: boolean | ((path: string, buffer: Buffer) => boolean); } -export class DirectoryMocker { +export class MockDirectory { static create(options?: DirectoryMockerOptions) { const root = options?.root ?? fs.mkdtempSync(joinPath(getTmpDir(), 'backstage-tmp-test-dir-')); - const mocker = new DirectoryMocker(root); + const mocker = new MockDirectory(root); const shouldCleanup = !options?.root || !fs.pathExistsSync(options.root); if (shouldCleanup) { @@ -85,7 +85,7 @@ export class DirectoryMocker { } static mockOsTmpDir() { - const mocker = DirectoryMocker.create(); + const mocker = MockDirectory.create(); const origTmpdir = os.tmpdir; os.tmpdir = () => mocker.path; @@ -113,13 +113,13 @@ export class DirectoryMocker { return resolvePath(this.#root, ...paths); } - async setContent(root: MockDirectory) { + async setContent(root: MockDirectoryContent) { await this.cleanup(); return this.addContent(root); } - async addContent(root: MockDirectory) { + async addContent(root: MockDirectoryContent) { const entries = this.#transformInput(root); for (const entry of entries) { @@ -141,7 +141,7 @@ export class DirectoryMocker { async content( options?: DirectoryMockerContentOptions, - ): Promise { + ): Promise { const shouldReadAsText = (typeof options?.shouldReadAsText === 'boolean' ? () => options?.shouldReadAsText @@ -158,7 +158,9 @@ export class DirectoryMocker { ); } - async function read(path: string): Promise { + async function read( + path: string, + ): Promise { if (!(await fs.pathExists(path))) { return undefined; } @@ -194,10 +196,10 @@ export class DirectoryMocker { await fs.rm(this.#root, { recursive: true, force: true }); }; - #transformInput(input: MockDirectory[string]): MockEntry[] { + #transformInput(input: MockDirectoryContent[string]): MockEntry[] { const entries: MockEntry[] = []; - function traverse(node: MockDirectory[string], path: string) { + function traverse(node: MockDirectoryContent[string], path: string) { const trimmedPath = path.startsWith('/') ? path.slice(1) : path; // trim leading slash if (typeof node === 'string') { entries.push({ diff --git a/packages/backend-test-utils/src/files/index.ts b/packages/backend-test-utils/src/filesystem/index.ts similarity index 91% rename from packages/backend-test-utils/src/files/index.ts rename to packages/backend-test-utils/src/filesystem/index.ts index f6ed111069..f0b05641f5 100644 --- a/packages/backend-test-utils/src/files/index.ts +++ b/packages/backend-test-utils/src/filesystem/index.ts @@ -14,4 +14,4 @@ * limitations under the License. */ -export { DirectoryMocker } from './DirectoryMocker'; +export { MockDirectory } from './MockDirectory'; diff --git a/packages/backend-test-utils/src/index.ts b/packages/backend-test-utils/src/index.ts index 5609dbbc2b..ff1f2ee460 100644 --- a/packages/backend-test-utils/src/index.ts +++ b/packages/backend-test-utils/src/index.ts @@ -22,6 +22,6 @@ export * from './database'; export * from './msw'; -export * from './files'; +export * from './filesystem'; export * from './next'; export * from './util';