diff --git a/libs/authorizenet/testing/ng-package.json b/libs/authorizenet/testing/ng-package.json new file mode 100644 index 0000000000..0f621f8520 --- /dev/null +++ b/libs/authorizenet/testing/ng-package.json @@ -0,0 +1,6 @@ +{ + "$schema": "../../../node_modules/ng-packagr/ng-entrypoint.schema.json", + "lib": { + "entryFile": "src/index.ts" + } +} diff --git a/libs/authorizenet/testing/src/factories/credit-card.factory.spec.ts b/libs/authorizenet/testing/src/factories/credit-card.factory.spec.ts new file mode 100644 index 0000000000..251755292f --- /dev/null +++ b/libs/authorizenet/testing/src/factories/credit-card.factory.spec.ts @@ -0,0 +1,40 @@ +import { TestBed } from '@angular/core/testing'; + +import { DaffAuthorizeNetCreditCard } from '@daffodil/authorizenet'; + +import { DaffAuthorizeNetCreditCardFactory } from './credit-card.factory'; + +describe('@daffodil/authorizenet/testing | DaffAuthorizeNetCreditCardFactory', () => { + let factory: DaffAuthorizeNetCreditCardFactory; + + beforeEach(() => { + TestBed.configureTestingModule({ + providers: [DaffAuthorizeNetCreditCardFactory], + }); + + factory = TestBed.inject(DaffAuthorizeNetCreditCardFactory); + }); + + it('should be created', () => { + expect(factory).toBeTruthy(); + }); + + describe('create', () => { + let result: DaffAuthorizeNetCreditCard; + + beforeEach(() => { + result = factory.create(); + }); + + it('should return', () => { + expect(result).toBeDefined(); + }); + + it('should define all the required fields', () => { + expect(result.cardnumber).toBeDefined(); + expect(result.month).toBeDefined(); + expect(result.year).toBeDefined(); + expect(result.securitycode).toBeDefined(); + }); + }); +}); diff --git a/libs/authorizenet/testing/src/factories/credit-card.factory.ts b/libs/authorizenet/testing/src/factories/credit-card.factory.ts new file mode 100644 index 0000000000..65bf2f036a --- /dev/null +++ b/libs/authorizenet/testing/src/factories/credit-card.factory.ts @@ -0,0 +1,27 @@ +import { Injectable } from '@angular/core'; +import { faker } from '@faker-js/faker/locale/en_US'; + +import { DaffAuthorizeNetCreditCard } from '@daffodil/authorizenet'; +import { DaffModelFactory } from '@daffodil/core/testing'; + +/** + * Mock class for {@link DaffAuthorizeNetCreditCard}. + */ +export class MockDaffAuthorizeNetCreditCard implements DaffAuthorizeNetCreditCard { + cardnumber = faker.finance.creditCardNumber(); + month = faker.date.month(); + year = faker.date.future().getFullYear().toString(); + securitycode = faker.finance.creditCardCVV(); +}; + +/** + * Model factory for {@link DaffAuthorizeNetCreditCard}. + */ +@Injectable({ + providedIn: 'root', +}) +export class DaffAuthorizeNetCreditCardFactory extends DaffModelFactory{ + constructor() { + super(MockDaffAuthorizeNetCreditCard); + } +} diff --git a/libs/authorizenet/testing/src/factories/public_api.ts b/libs/authorizenet/testing/src/factories/public_api.ts new file mode 100644 index 0000000000..cac2c39ba0 --- /dev/null +++ b/libs/authorizenet/testing/src/factories/public_api.ts @@ -0,0 +1 @@ +export * from './credit-card.factory'; diff --git a/libs/authorizenet/testing/src/index.ts b/libs/authorizenet/testing/src/index.ts new file mode 100644 index 0000000000..4aaf8f92ed --- /dev/null +++ b/libs/authorizenet/testing/src/index.ts @@ -0,0 +1 @@ +export * from './public_api'; diff --git a/libs/authorizenet/testing/src/public_api.ts b/libs/authorizenet/testing/src/public_api.ts new file mode 100644 index 0000000000..b834ec22bb --- /dev/null +++ b/libs/authorizenet/testing/src/public_api.ts @@ -0,0 +1 @@ +export * from './factories/public_api'; diff --git a/libs/authorizenet/tsconfig.json b/libs/authorizenet/tsconfig.json index 4dba8d1116..570c73abff 100644 --- a/libs/authorizenet/tsconfig.json +++ b/libs/authorizenet/tsconfig.json @@ -9,6 +9,9 @@ "@daffodil/authorizenet": [ "libs/authorizenet/src" ], + "@daffodil/authorizenet/testing": [ + "libs/authorizenet/testing/src" + ], "@daffodil/authorizenet/state": [ "libs/authorizenet/state/src" ],