From eedfeec888ee395a8c1be51833ad7592c9384795 Mon Sep 17 00:00:00 2001 From: Simone Radtke Date: Mon, 27 May 2024 10:26:46 +0200 Subject: [PATCH] EW-793 Extend test factories to reduce code duplications --- ...common-cartridge-organization-node.spec.ts | 15 ++-------- ...tridge-resource-collection-builder.spec.ts | 28 ++++--------------- .../common-cartridge-resource-node.spec.ts | 16 +++-------- .../common-cartridge-node-props.factory.ts | 12 ++++++++ ...common-cartridge-resource-props.factory.ts | 10 +++++++ 5 files changed, 35 insertions(+), 46 deletions(-) create mode 100644 apps/server/src/modules/common-cartridge/testing/common-cartridge-node-props.factory.ts diff --git a/apps/server/src/modules/common-cartridge/export/builders/common-cartridge-organization-node.spec.ts b/apps/server/src/modules/common-cartridge/export/builders/common-cartridge-organization-node.spec.ts index ffdaaecdcbc..b4d8fd22581 100644 --- a/apps/server/src/modules/common-cartridge/export/builders/common-cartridge-organization-node.spec.ts +++ b/apps/server/src/modules/common-cartridge/export/builders/common-cartridge-organization-node.spec.ts @@ -1,22 +1,13 @@ -import { faker } from '@faker-js/faker'; import { createMock } from '@golevelup/ts-jest'; +import { createCommonCartridgeOrganizationNodeProps } from '../../testing/common-cartridge-node-props.factory'; import { createCommonCartridgeWebLinkResourceProps } from '../../testing/common-cartridge-resource-props.factory'; -import { CommonCartridgeElementType, CommonCartridgeVersion } from '../common-cartridge.enums'; import { CommonCartridgeElement } from '../interfaces'; -import { - CommonCartridgeOrganizationNode, - CommonCartridgeOrganizationNodeProps, -} from './common-cartridge-organization-node'; +import { CommonCartridgeOrganizationNode } from './common-cartridge-organization-node'; import { CommonCartridgeResourceCollectionBuilder } from './common-cartridge-resource-collection-builder'; describe('CommonCartridgeOrganizationNode', () => { const setupOrganizationNodeProps = () => { - const props: CommonCartridgeOrganizationNodeProps = { - type: CommonCartridgeElementType.ORGANIZATION, - version: CommonCartridgeVersion.V_1_1_0, - identifier: faker.string.uuid(), - title: faker.lorem.words(), - }; + const props = createCommonCartridgeOrganizationNodeProps(); return props; }; diff --git a/apps/server/src/modules/common-cartridge/export/builders/common-cartridge-resource-collection-builder.spec.ts b/apps/server/src/modules/common-cartridge/export/builders/common-cartridge-resource-collection-builder.spec.ts index b54ed6e0b30..dd8c547876f 100644 --- a/apps/server/src/modules/common-cartridge/export/builders/common-cartridge-resource-collection-builder.spec.ts +++ b/apps/server/src/modules/common-cartridge/export/builders/common-cartridge-resource-collection-builder.spec.ts @@ -1,15 +1,8 @@ -import { faker } from '@faker-js/faker'; import { createMock } from '@golevelup/ts-jest'; -import { - CommonCartridgeElementType, - CommonCartridgeIntendedUseType, - CommonCartridgeResourceType, - CommonCartridgeVersion, -} from '../common-cartridge.enums'; -import { - CommonCartridgeOrganizationNode, - CommonCartridgeOrganizationNodeProps, -} from './common-cartridge-organization-node'; +import { createCommonCartridgeOrganizationNodeProps } from '../../testing/common-cartridge-node-props.factory'; +import { createCommonCartridgeWebContentResourceProps } from '../../testing/common-cartridge-resource-props.factory'; +import { CommonCartridgeVersion } from '../common-cartridge.enums'; +import { CommonCartridgeOrganizationNode } from './common-cartridge-organization-node'; import { CommonCartridgeResourceCollectionBuilder } from './common-cartridge-resource-collection-builder'; import { CommonCartridgeResourceNode, CommonCartridgeResourceNodeProps } from './common-cartridge-resource-node'; @@ -18,19 +11,10 @@ describe('CommonCartridgeResourceCollectionBuilder', () => { const setupResourceNode = () => { const resourceNodeProps: CommonCartridgeResourceNodeProps = { - type: CommonCartridgeResourceType.WEB_CONTENT, - identifier: faker.string.uuid(), - title: faker.lorem.words(), - html: faker.lorem.paragraph(), - intendedUse: CommonCartridgeIntendedUseType.UNSPECIFIED, + ...createCommonCartridgeWebContentResourceProps(), version: CommonCartridgeVersion.V_1_1_0, }; - const organizationNodeProps: CommonCartridgeOrganizationNodeProps = { - identifier: faker.string.uuid(), - title: faker.lorem.words(), - version: CommonCartridgeVersion.V_1_1_0, - type: CommonCartridgeElementType.ORGANIZATION, - }; + const organizationNodeProps = createCommonCartridgeOrganizationNodeProps(); const organizationNode = new CommonCartridgeOrganizationNode(organizationNodeProps, sut, null); const resourceNode = new CommonCartridgeResourceNode(resourceNodeProps, organizationNode); diff --git a/apps/server/src/modules/common-cartridge/export/builders/common-cartridge-resource-node.spec.ts b/apps/server/src/modules/common-cartridge/export/builders/common-cartridge-resource-node.spec.ts index 5678583c6af..8fc409b48fd 100644 --- a/apps/server/src/modules/common-cartridge/export/builders/common-cartridge-resource-node.spec.ts +++ b/apps/server/src/modules/common-cartridge/export/builders/common-cartridge-resource-node.spec.ts @@ -1,11 +1,8 @@ -import { faker } from '@faker-js/faker'; +import { createCommonCartridgeOrganizationNodeProps } from '../../testing/common-cartridge-node-props.factory'; import { createCommonCartridgeWebLinkResourceProps } from '../../testing/common-cartridge-resource-props.factory'; -import { CommonCartridgeElementType, CommonCartridgeVersion } from '../common-cartridge.enums'; +import { CommonCartridgeVersion } from '../common-cartridge.enums'; import { CommonCartridgeResource } from '../interfaces'; -import { - CommonCartridgeOrganizationNode, - CommonCartridgeOrganizationNodeProps, -} from './common-cartridge-organization-node'; +import { CommonCartridgeOrganizationNode } from './common-cartridge-organization-node'; import { CommonCartridgeResourceCollectionBuilder } from './common-cartridge-resource-collection-builder'; import { CommonCartridgeResourceNode, CommonCartridgeResourceNodeProps } from './common-cartridge-resource-node'; @@ -20,12 +17,7 @@ describe('CommonCartridgeResourceNode', () => { version: CommonCartridgeVersion.V_1_1_0, }; - const organizationNodeProps: CommonCartridgeOrganizationNodeProps = { - identifier: faker.string.uuid(), - title: faker.lorem.words(), - version: CommonCartridgeVersion.V_1_1_0, - type: CommonCartridgeElementType.ORGANIZATION, - }; + const organizationNodeProps = createCommonCartridgeOrganizationNodeProps(); const resourceCollectionBuilder: CommonCartridgeResourceCollectionBuilder = new CommonCartridgeResourceCollectionBuilder(); diff --git a/apps/server/src/modules/common-cartridge/testing/common-cartridge-node-props.factory.ts b/apps/server/src/modules/common-cartridge/testing/common-cartridge-node-props.factory.ts new file mode 100644 index 00000000000..bffe84b1f7c --- /dev/null +++ b/apps/server/src/modules/common-cartridge/testing/common-cartridge-node-props.factory.ts @@ -0,0 +1,12 @@ +import { faker } from '@faker-js/faker'; +import { CommonCartridgeOrganizationNodeProps } from '../export/builders/common-cartridge-organization-node'; +import { CommonCartridgeElementType, CommonCartridgeVersion } from '../export/common-cartridge.enums'; + +export function createCommonCartridgeOrganizationNodeProps(): CommonCartridgeOrganizationNodeProps { + return { + type: CommonCartridgeElementType.ORGANIZATION, + identifier: faker.string.uuid(), + title: faker.lorem.words(), + version: CommonCartridgeVersion.V_1_1_0, + }; +} diff --git a/apps/server/src/modules/common-cartridge/testing/common-cartridge-resource-props.factory.ts b/apps/server/src/modules/common-cartridge/testing/common-cartridge-resource-props.factory.ts index af838cb5b5a..136f0e8ac6f 100644 --- a/apps/server/src/modules/common-cartridge/testing/common-cartridge-resource-props.factory.ts +++ b/apps/server/src/modules/common-cartridge/testing/common-cartridge-resource-props.factory.ts @@ -93,3 +93,13 @@ export function createCommonCartridgeWebLinkResourceProps(): CommonCartridgeReso url: faker.internet.url(), }; } + +export function createCommonCartridgeWebContentResourceProps(): CommonCartridgeResourceProps { + return { + type: CommonCartridgeResourceType.WEB_CONTENT, + title: faker.lorem.words(), + identifier: faker.string.uuid(), + html: faker.lorem.paragraph(), + intendedUse: CommonCartridgeIntendedUseType.UNSPECIFIED, + }; +}