From 9fb035703bd0fa53c38514c26e917f42b2b7538d Mon Sep 17 00:00:00 2001 From: Craig Spence Date: Tue, 13 Oct 2020 02:47:37 +1300 Subject: [PATCH] =?UTF-8?q?fix(fixture=20=F0=9F=90=9B):=20make=20@betterer?= =?UTF-8?q?/fixture=20throw=20on=20duplicate=20name=20(#317)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- packages/fixture/package.json | 2 +- packages/fixture/src/fixture.ts | 20 +++++++++----------- 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/packages/fixture/package.json b/packages/fixture/package.json index 6b2d6bef2..56248b499 100644 --- a/packages/fixture/package.json +++ b/packages/fixture/package.json @@ -24,7 +24,7 @@ }, "dependencies": { "@betterer/betterer": "^3.0.3", - "@betterer/logger": "^3.0.0", + "@betterer/errors": "^3.1.0", "ansi-regex": "^5.0.0", "fs-extra": "^9.0.1", "graceful-fs": "^4.2.3" diff --git a/packages/fixture/src/fixture.ts b/packages/fixture/src/fixture.ts index 4dd42fead..29d700aa2 100644 --- a/packages/fixture/src/fixture.ts +++ b/packages/fixture/src/fixture.ts @@ -1,5 +1,5 @@ import { BettererRunNames, BettererRuns, BettererSummary } from '@betterer/betterer'; -import { warnΔ } from '@betterer/logger'; +import { registerError } from '@betterer/errors'; import { promises as fs } from 'graceful-fs'; import * as path from 'path'; @@ -7,6 +7,10 @@ import { createFixtureFS } from './fs'; import { createFixtureLogs } from './logging'; import { Fixture, FixtureFactory, FixtureFileSystemFiles } from './types'; +const DUPLICATE_FIXTURE_NAME = registerError( + (fixtureName) => `There is already a fixture in use called "${fixtureName.toString()}"` +); + export async function createFixtureDirectoryΔ(fixturesPath: string): Promise { try { await fs.mkdir(fixturesPath); @@ -15,13 +19,9 @@ export async function createFixtureDirectoryΔ(fixturesPath: string): Promise { - try { - const fixtureNames = await fs.readdir(fixturesPath); - if (fixtureNames.includes(fixtureName)) { - warnΔ(`There is already a fixture in use called "${fixtureName}"`); - } - } catch { - // Move on... + const fixtureNames = await fs.readdir(fixturesPath); + if (fixtureNames.includes(fixtureName)) { + throw DUPLICATE_FIXTURE_NAME(fixtureName); } const fixturePath = path.resolve(fixturesPath, fixtureName); @@ -29,9 +29,7 @@ export async function createFixtureDirectoryΔ(fixturesPath: string): Promise { - setTimeout(resolve, 500); - }); + await new Promise((resolve) => setTimeout(resolve, 500)); return { ...fixtureFS,