@defra-fish/gafl-webapp-service
Version:
The websales frontend for the GAFL service
33 lines (28 loc) • 1.49 kB
JavaScript
import { start, stop, initialize, injectWithCookies } from '../../__mocks__/test-utils-system.js'
import { ADD_PERMISSION, NEW_TRANSACTION, TEST_TRANSACTION } from '../../uri.js'
import { MAX_PERMISSIONS_PER_TRANSACTION } from '@defra-fish/business-rules-lib'
beforeAll(() => new Promise(resolve => start(resolve)))
beforeAll(() => new Promise(resolve => initialize(resolve)))
afterAll(d => stop(d))
describe('The new permission handler', () => {
it('Adds new permission objects to the transaction cache', async () => {
// Add a permission
await injectWithCookies('GET', NEW_TRANSACTION.uri)
let res = await injectWithCookies('GET', TEST_TRANSACTION.uri)
expect(JSON.parse(res.payload).permissions.length).toBe(1)
// Add a permission
await injectWithCookies('GET', ADD_PERMISSION.uri)
res = await injectWithCookies('GET', TEST_TRANSACTION.uri)
expect(JSON.parse(res.payload).permissions.length).toBe(2)
})
it('Ensure that we cannot overload the redis cache by doing this continually', async () => {
await injectWithCookies('GET', NEW_TRANSACTION.uri)
for (let i = 0; i < MAX_PERMISSIONS_PER_TRANSACTION; i++) {
await injectWithCookies('GET', ADD_PERMISSION.uri)
}
let res = await injectWithCookies('GET', TEST_TRANSACTION.uri)
expect(JSON.parse(res.payload).permissions.length).toBe(MAX_PERMISSIONS_PER_TRANSACTION)
res = await injectWithCookies('GET', ADD_PERMISSION.uri)
expect(res.statusCode).toBe(400)
})
})