From b2cca66ed9ccd817b4058f1477e1c0259dccbbf4 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <p.gawron@atcomp.pl> Date: Fri, 26 Apr 2024 13:45:07 +0200 Subject: [PATCH] adjust tests for the new zod model --- src/models/fixtures/projectFixture.ts | 17 +++++++++++++++-- src/models/generators/diseaseGenerator.ts | 18 ++++++++++++++++++ src/models/generators/diseaseNameGenerator.ts | 10 ++++++++++ src/models/generators/organismGenerator.ts | 16 ++++++++++++++++ src/models/generators/organismNameGenerator.ts | 10 ++++++++++ .../generators/topOverviewImageGenerator.ts | 16 ++++++++++++++++ 6 files changed, 85 insertions(+), 2 deletions(-) create mode 100644 src/models/generators/diseaseGenerator.ts create mode 100644 src/models/generators/diseaseNameGenerator.ts create mode 100644 src/models/generators/organismGenerator.ts create mode 100644 src/models/generators/organismNameGenerator.ts create mode 100644 src/models/generators/topOverviewImageGenerator.ts diff --git a/src/models/fixtures/projectFixture.ts b/src/models/fixtures/projectFixture.ts index 06868af6..f228879d 100644 --- a/src/models/fixtures/projectFixture.ts +++ b/src/models/fixtures/projectFixture.ts @@ -1,9 +1,22 @@ import { ZOD_SEED } from '@/constants'; // eslint-disable-next-line import/no-extraneous-dependencies -import { createFixture } from 'zod-fixture'; +import { Fixture } from 'zod-fixture'; +import { diseaseNameGenerator } from '@/models/generators/diseaseNameGenerator'; +import { diseaseGenerator } from '@/models/generators/diseaseGenerator'; +import { organismGenerator } from '@/models/generators/organismGenerator'; +import { organismNameGenerator } from '@/models/generators/organismNameGenerator'; +import { topOverviewImageGenerator } from '@/models/generators/topOverviewImageGenerator'; import { projectSchema } from '../projectSchema'; -export const projectFixture = createFixture(projectSchema, { +const projectFixtureGenerator = new Fixture({ seed: ZOD_SEED }).extend([ + diseaseNameGenerator, + diseaseGenerator, + organismNameGenerator, + organismGenerator, + topOverviewImageGenerator, +]); + +export const projectFixture = projectFixtureGenerator.fromSchema(projectSchema, { seed: ZOD_SEED, array: { min: 1, max: 1 }, }); diff --git a/src/models/generators/diseaseGenerator.ts b/src/models/generators/diseaseGenerator.ts new file mode 100644 index 00000000..1e8ae525 --- /dev/null +++ b/src/models/generators/diseaseGenerator.ts @@ -0,0 +1,18 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import { createFixture, Generator } from 'zod-fixture'; +import { disease } from '@/models/disease'; +import { ZOD_SEED } from '@/constants'; +import { ZodNullable } from 'zod'; + +export const diseaseGenerator = Generator({ + schema: ZodNullable, + filter: ({ context }) => { + // eslint-disable-next-line no-magic-numbers + return context.path.at(-1) === 'disease'; + }, + output: () => + createFixture(disease, { + seed: ZOD_SEED, + array: { min: 2, max: 2 }, + }), +}); diff --git a/src/models/generators/diseaseNameGenerator.ts b/src/models/generators/diseaseNameGenerator.ts new file mode 100644 index 00000000..427c74b8 --- /dev/null +++ b/src/models/generators/diseaseNameGenerator.ts @@ -0,0 +1,10 @@ +import { ZodNullable, ZodString } from 'zod'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { Generator } from 'zod-fixture'; + +export const diseaseNameGenerator = Generator({ + schema: ZodNullable<ZodString>, + // eslint-disable-next-line no-magic-numbers + filter: ({ context }) => context.path.at(-1) === 'diseaseName', + output: ({ transform }) => transform.utils.random.string({}), +}); diff --git a/src/models/generators/organismGenerator.ts b/src/models/generators/organismGenerator.ts new file mode 100644 index 00000000..ae654656 --- /dev/null +++ b/src/models/generators/organismGenerator.ts @@ -0,0 +1,16 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import { createFixture, Generator } from 'zod-fixture'; +import { ZOD_SEED } from '@/constants'; +import { ZodNullable } from 'zod'; +import { organism } from '@/models/organism'; + +export const organismGenerator = Generator({ + schema: ZodNullable, + // eslint-disable-next-line no-magic-numbers + filter: ({ context }) => context.path.at(-1) === 'organism', + output: () => + createFixture(organism, { + seed: ZOD_SEED, + array: { min: 2, max: 2 }, + }), +}); diff --git a/src/models/generators/organismNameGenerator.ts b/src/models/generators/organismNameGenerator.ts new file mode 100644 index 00000000..25bd5c0f --- /dev/null +++ b/src/models/generators/organismNameGenerator.ts @@ -0,0 +1,10 @@ +import { ZodNullable, ZodString } from 'zod'; +// eslint-disable-next-line import/no-extraneous-dependencies +import { Generator } from 'zod-fixture'; + +export const organismNameGenerator = Generator({ + schema: ZodNullable<ZodString>, + // eslint-disable-next-line no-magic-numbers + filter: ({ context }) => context.path.at(-1) === 'organismName', + output: ({ transform }) => transform.utils.random.string({}), +}); diff --git a/src/models/generators/topOverviewImageGenerator.ts b/src/models/generators/topOverviewImageGenerator.ts new file mode 100644 index 00000000..fbdb047c --- /dev/null +++ b/src/models/generators/topOverviewImageGenerator.ts @@ -0,0 +1,16 @@ +// eslint-disable-next-line import/no-extraneous-dependencies +import { createFixture, Generator } from 'zod-fixture'; +import { ZOD_SEED } from '@/constants'; +import { ZodNullable } from 'zod'; +import { overviewImageView } from '@/models/overviewImageView'; + +export const topOverviewImageGenerator = Generator({ + schema: ZodNullable, + // eslint-disable-next-line no-magic-numbers + filter: ({ context }) => context.path.at(-1) === 'topOverviewImage', + output: () => + createFixture(overviewImageView, { + seed: ZOD_SEED, + array: { min: 2, max: 2 }, + }), +}); -- GitLab