Files
caprover/tests/utils.test.ts
2021-05-05 10:19:51 +07:00

127 lines
3.6 KiB
TypeScript

import Utils from '../src/utils/Utils'
test('Testing dropFirstElements - larger', () => {
const originalArray = []
for (let index = 0; index < 20; index++) {
originalArray.push('A' + index)
}
expect(Utils.dropFirstElements(originalArray, 2).join(',')) //
.toBe('A18,A19')
})
test('Testing dropFirstElements - same', () => {
const originalArray = []
for (let index = 0; index < 2; index++) {
originalArray.push('A' + index)
}
expect(Utils.dropFirstElements(originalArray, 2).join(',')) //
.toBe('A0,A1')
})
test('Testing dropFirstElements - smaller', () => {
const originalArray = []
for (let index = 0; index < 2; index++) {
originalArray.push('A' + index)
}
expect(Utils.dropFirstElements(originalArray, 3).join(',')) //
.toBe('A0,A1')
})
test('Testing dropFirstElements - smaller (1)', () => {
const originalArray = []
for (let index = 0; index < 1; index++) {
originalArray.push('A' + index)
}
expect(Utils.dropFirstElements(originalArray, 3).join(',')) //
.toBe('A0')
})
test('Testing dropFirstElements - smaller (0)', () => {
const originalArray = []
for (let index = 0; index < 0; index++) {
originalArray.push('A' + index)
}
expect(Utils.dropFirstElements(originalArray, 3).join(',')) //
.toBe('')
})
interface TestArray {
val1: string
val2: string
}
function createTestArray() {
const originalArray: TestArray[] = []
for (let index = 0; index < 2; index++) {
originalArray.push({
val1: 'e-1-' + (index + 1),
val2: 'e-2-' + (index + 1),
})
}
return originalArray
}
test('Testing filter in place - remove 1st', () => {
const originalArray = createTestArray()
Utils.filterInPlace(originalArray, (v) => v.val1 !== 'e-1-1')
expect(originalArray.length).toBe(1)
expect(originalArray[0].val1).toBe('e-1-2')
expect(originalArray[0].val2).toBe('e-2-2')
})
test('Testing filter in place - remove 2nd', () => {
const originalArray = createTestArray()
Utils.filterInPlace(originalArray, (v) => v.val1 !== 'e-1-2')
expect(originalArray.length).toBe(1)
expect(originalArray[0].val1).toBe('e-1-1')
expect(originalArray[0].val2).toBe('e-2-1')
})
test('Testing code to check custom domain', () => {
const rootDomain = 'google123.ca'
const appName = 'app1'
expect(() => Utils.checkCustomDomain('', appName, rootDomain)).toThrow(
'Domain name is not accepted. Please use alphanumerical domains such as myapp.google123.ca'
)
expect(() =>
Utils.checkCustomDomain('x'.repeat(81), appName, rootDomain)
).toThrow(
'Domain name is not accepted. Please use alphanumerical domains less than 80 characters in length.'
)
expect(() =>
Utils.checkCustomDomain('..google321.ca', appName, rootDomain)
).toThrow(
'Domain name is not accepted. You cannot have two consecutive periods ".." inside a domain name. Please use alphanumerical domains such as myapp.google123.ca'
)
expect(() =>
Utils.checkCustomDomain(`app2.${rootDomain}`, appName, rootDomain)
).toThrow(
'Domain name is not accepted. Custom domain cannot be subdomain of root domain.'
)
expect(() =>
Utils.checkCustomDomain(
`api.${appName}.${rootDomain}`,
appName,
rootDomain
)
).not.toThrow(
'Domain name is not accepted. Custom domain cannot be subdomain of root domain.'
)
expect(() =>
Utils.checkCustomDomain(`caprover123.ca`, appName, rootDomain)
).not.toThrow()
})