declarapi
Version:
Declarative API generation
35 lines (29 loc) • 1.69 kB
text/typescript
import { argumentForEmpty, argumentFor404 } from '../unauthenticated/get'
import { HandleResponse, HandleType } from 'declarapi-runtime/registerRestMethods'
import { AuthInput } from 'declarapi-runtime'
const expect401 = (response:HandleResponse) => {
expect(response).toHaveProperty('status', 401)
expect(response).toHaveProperty('response')
expect(response.response).toHaveProperty('status', 401)
expect(response.response).toHaveProperty('data')
expect(typeof response.response.data).toBe('object')
expect(response.response).toHaveProperty('errorType', 'unauthorized')
expect(response.response).toHaveProperty('errors', ['Only logged in users can do this'])
}
const expect403 = (response:HandleResponse) => {
expect(response).toHaveProperty('status', 403)
expect(response).toHaveProperty('response')
expect(response.response).toHaveProperty('status', 403)
expect(response.response).toHaveProperty('data')
expect(typeof response.response.data).toBe('object')
expect(response.response).toHaveProperty('errorType', 'forbidden')
expect(response.response).toHaveProperty('errors', ['You don\'t have permission to do this'])
}
export const expect401ForUnauthenticatedUser = (get: HandleType) => {
const empty = [...Object.values(argumentForEmpty({})), ...Object.values(argumentFor404({}))]
return Promise.all(empty.map(x => get.apply(undefined, x).then(y => expect401(y))))
}
export const expect403ForUnauthorizedUser = (get: HandleType, authInput:AuthInput) => {
const empty = [...Object.values(argumentForEmpty(authInput)), ...Object.values(argumentFor404(authInput))]
return Promise.all(empty.map(x => get.apply(undefined, x).then(y => expect403(y))))
}