import { Test, TestingModule } from '@nestjs/testing' import { datatype } from 'faker' import { MockedModule } from '../../../../test/types' import { N2BPaymentsProviders, N2BPaymentsService } from '../../../services' import { PaymentMethod } from './payment-method' describe('PaymentMethod', () => { let subject: PaymentMethod let n2BPaymentsService: MockedModule beforeAll(async () => { n2BPaymentsService = { generateClientSession: jest.fn(), } const app: TestingModule = await Test.createTestingModule({ providers: [ { provide: N2BPaymentsService, useValue: n2BPaymentsService, }, PaymentMethod, ], }).compile() subject = app.get(PaymentMethod) }) afterEach(() => { jest.clearAllMocks() }) afterAll(() => { jest.restoreAllMocks() }) describe('#generateClientSession()', () => { let provider: N2BPaymentsProviders.INGENICO let sessionToken: string beforeAll(() => { sessionToken = datatype.uuid() }) beforeEach(() => { n2BPaymentsService.generateClientSession.mockResolvedValue(sessionToken) }) it('returns the client session from service', async () => { expect(await subject.generateClientSession(provider)).toEqual(sessionToken) }) }) })