import { checkPathMatch, generateRandomStr, getEmailAddress, isValidStr, sleep, } from '../utils'; describe('getEmailAddress', () => { test.each([ ['foo@example.com', 'foo'], ['foo.bar@example.com', 'foo.bar'], ['foo$bar@example.com', 'foo$bar'], ])('%s', (input, output) => { expect(getEmailAddress(input)).toBe(output); }); }); describe('generateRandomStr', () => { test('should generate string with length 10(default)', () => { expect(generateRandomStr()).toHaveLength(10); }); test('should generate string with manual length', () => { expect(generateRandomStr(4)).toHaveLength(4); }); }); describe('isValidStr', () => { test.each<[any, boolean]>([ [false, false], [true, false], [0, false], [1, false], ['', false], [{}, false], [[], false], ['foo', true], ])('%p is %p', (input, output) => { expect(isValidStr(input)).toBe(output); }); }); test('sleep', async () => { const start = new Date().valueOf(); await sleep(1000); const end = new Date().valueOf(); const duration = end - start; expect(duration).toBeGreaterThanOrEqual(1000); expect(duration).toBeLessThan(1050); }); describe('checkPathMatch', () => { const testList = ['/foo/bar']; test.each([ ['/foo/bar', true], ['/foo/bar?query=1', true], ['/foo', false], ['/foo/baz', false], ['/foo/baz?bar=', false], ])('%s', (input, output) => { expect(checkPathMatch(testList, input)).toBe(output); }); });