UNPKG

@telstra/messaging

Version:
78 lines (67 loc) 3.03 kB
import { AssertionError } from '@telstra/core'; import { FreeTrialNumbers } from '../../../src/classes/index.js'; import { TFreeTrialNumbers } from '../../../src/types/index.js'; import { Constants } from '../../shared/Constants.js'; import AUTH_CONFIG from '../../shared/credentials.json' with { type: 'json' }; import { afterAll, afterEach, beforeAll, describe, expect, it } from 'vitest'; import { server } from '../../shared/mswServer.js'; beforeAll(() => server.listen()); afterEach(() => server.resetHandlers()); afterAll(() => server.close()); const freeTrialNumbers = new FreeTrialNumbers(AUTH_CONFIG); describe('FreeTrialNumbers', () => { describe('fetch free-trial numbers', () => { describe('when the client retrieves list of free-trial numbers', () => { it('should return a result', async () => { await expect(freeTrialNumbers.getAll()).resolves.toEqual(Constants.CREATE_FREETRIAL_NUMBERS_RESPONSE); }); }); }); describe('create free-trial numbers list', () => { describe('when the client sends a valid object', () => { it('should pass having 10 chars', async () => { const data = { freeTrialNumbers: ['0412345678'] }; await expect(freeTrialNumbers.create(data)).resolves.toEqual(data); }); }); const testAssertionError = async (data: TFreeTrialNumbers, _: string) => { const callback = async () => freeTrialNumbers.create(data); await expect(callback).rejects.toThrow(AssertionError); }; describe('when the client sends invalid [freeTrialNumbers] property', () => { it('should throw an assertion error for invalid type [freeTrialNumbers] as array of numbers.', async () => { // @ts-expect-error const data: TFreeTrialNumbers = { freeTrialNumbers: [123456] }; await testAssertionError(data, 'Invalid type [freeTrialNumbers].'); }); it('should throw an assertion error for not fewer than 1 item.', async () => { // @ts-expect-error const data: TFreeTrialNumbers = { freeTrialNumbers: '+61234567890' }; await testAssertionError(data, 'Not fewer than 1 item.'); }); it('should throw an assertion error for invalid type [freeTrialNumbers] as array of strings with >10 characters.', async () => { const data: TFreeTrialNumbers = { freeTrialNumbers: ['+61234567890'] }; await testAssertionError(data, 'Invalid type [freeTrialNumbers].'); }); it('should throw an assertion error for more than 10 items.', async () => { const data: TFreeTrialNumbers = { freeTrialNumbers: [ '0234567890', '0234567891', '0234567892', '0234567893', '0234567894', '0234567895', '0234567896', '0234567897', '0234567898', '0234567899', '0234567910', '0234567911', ], }; await testAssertionError(data, 'More than 10 items.'); }); }); }); });