UNPKG

playwright-fluent

Version:
86 lines (85 loc) 4.08 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); const tslib_1 = require("tslib"); const SUT = tslib_1.__importStar(require("../index")); describe('mock creators', () => { // eslint-disable-next-line @typescript-eslint/no-empty-function beforeEach(() => { }); test('should return a mock for GET json depending on query string', async () => { // Given const response = { prop1: 'value1', prop2: 'value2', }; const relativeUrl = '/api/yo'; // When const mock = SUT.mockGetWithJsonResponseDependingOnQueryString(relativeUrl, { foo: 'bar' }, response); // Then expect(mock.displayName).toBe('GET /api/yo?foo=bar'); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(mock.urlMatcher(`https://yo.com/api/yo?foo=baz`)).toBe(true); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(mock.urlMatcher(`https://yo.com/api/go?foo=baz`)).toBe(false); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(mock.queryStringMatcher({ foo: 'bar' })).toBe(true); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(mock.queryStringMatcher({ foo: 'bar', bar: 'baz' })).toBe(true); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(mock.queryStringMatcher({ bar: 'baz' })).toBe(false); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(mock.queryStringMatcher({})).toBe(false); }); test('should return a mock for GET json', async () => { // Given const response = { prop1: 'value1', prop2: 'value2', }; // When const mock = SUT.mockGetWithJsonResponse('/api/yo', response); // Then expect(mock.displayName).toBe('GET /api/yo'); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(mock.urlMatcher(`https://yo.com/api/yo?foo=baz`)).toBe(true); }); test('should return a mock for GET javascript', async () => { // Given const response = `window.foo = 'bar';`; // When const mock = SUT.mockGetWithJavascriptResponse('/api/foo.js', response); // Then expect(mock.displayName).toBe('GET /api/foo.js'); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(mock.urlMatcher(`https://yo.com/api/foo.js`)).toBe(true); expect(mock.responseType).toBe('javascript'); expect(typeof mock.rawResponse).toBe('function'); }); test('should return a mock for GET that returns a 401', async () => { // Given // When const mock = SUT.mockGetWithUnauthorizedResponse('/api/foo.js'); // Then expect(mock.displayName).toBe('GET /api/foo.js'); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(mock.urlMatcher(`https://yo.com/api/foo.js`)).toBe(true); expect(mock.responseType).toBe('empty'); expect(typeof mock.methodMatcher).toBe('function'); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(mock.methodMatcher(`GET`)).toBe(true); expect(mock.status).toBe(401); }); test('should return a mock for GET that returns a 403', async () => { // Given // When const mock = SUT.mockGetWithForbiddenResponse('/api/foo.js'); // Then expect(mock.displayName).toBe('GET /api/foo.js'); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(mock.urlMatcher(`https://yo.com/api/foo.js`)).toBe(true); expect(mock.responseType).toBe('empty'); expect(typeof mock.methodMatcher).toBe('function'); // eslint-disable-next-line @typescript-eslint/no-non-null-assertion expect(mock.methodMatcher(`GET`)).toBe(true); expect(mock.status).toBe(403); }); });