resourceId tests
This commit is contained in:
parent
c4b3a7c884
commit
c755df9f91
|
@ -36,6 +36,8 @@ class ResourceIdGetter {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
module.exports.ResourceIdGetter = ResourceIdGetter
|
||||||
|
|
||||||
module.exports.paramResource = main => {
|
module.exports.paramResource = main => {
|
||||||
return new ResourceIdGetter("params").mainResource(main).build()
|
return new ResourceIdGetter("params").mainResource(main).build()
|
||||||
}
|
}
|
||||||
|
|
|
@ -0,0 +1,105 @@
|
||||||
|
const {
|
||||||
|
paramResource,
|
||||||
|
paramSubResource,
|
||||||
|
bodyResource,
|
||||||
|
bodySubResource,
|
||||||
|
ResourceIdGetter
|
||||||
|
} = require("../resourceId")
|
||||||
|
|
||||||
|
class TestConfiguration {
|
||||||
|
constructor(middleware) {
|
||||||
|
this.middleware = middleware
|
||||||
|
this.ctx = {
|
||||||
|
request: {},
|
||||||
|
}
|
||||||
|
this.next = jest.fn()
|
||||||
|
}
|
||||||
|
|
||||||
|
setParams(params) {
|
||||||
|
this.ctx.params = params
|
||||||
|
}
|
||||||
|
|
||||||
|
setBody(body) {
|
||||||
|
this.ctx.body = body
|
||||||
|
}
|
||||||
|
|
||||||
|
executeMiddleware() {
|
||||||
|
return this.middleware(this.ctx, this.next)
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
describe("resourceId middleware", () => {
|
||||||
|
it("calls next() when there is no request object to parse", () => {
|
||||||
|
const config = new TestConfiguration(paramResource("main"))
|
||||||
|
|
||||||
|
config.executeMiddleware()
|
||||||
|
|
||||||
|
expect(config.next).toHaveBeenCalled()
|
||||||
|
expect(config.ctx.resourceId).toBeUndefined()
|
||||||
|
})
|
||||||
|
|
||||||
|
it("generates a resourceId middleware for context query parameters", () => {
|
||||||
|
const config = new TestConfiguration(paramResource("main"))
|
||||||
|
config.setParams({
|
||||||
|
main: "test"
|
||||||
|
})
|
||||||
|
|
||||||
|
config.executeMiddleware()
|
||||||
|
|
||||||
|
expect(config.ctx.resourceId).toEqual("test")
|
||||||
|
})
|
||||||
|
|
||||||
|
it("generates a resourceId middleware for context query sub parameters", () => {
|
||||||
|
const config = new TestConfiguration(paramSubResource("main", "sub"))
|
||||||
|
config.setParams({
|
||||||
|
main: "main",
|
||||||
|
sub: "test"
|
||||||
|
})
|
||||||
|
|
||||||
|
config.executeMiddleware()
|
||||||
|
|
||||||
|
expect(config.ctx.resourceId).toEqual("main")
|
||||||
|
expect(config.ctx.subResourceId).toEqual("test")
|
||||||
|
})
|
||||||
|
|
||||||
|
it("generates a resourceId middleware for context request body", () => {
|
||||||
|
const config = new TestConfiguration(bodyResource("main"))
|
||||||
|
config.setBody({
|
||||||
|
main: "test"
|
||||||
|
})
|
||||||
|
|
||||||
|
config.executeMiddleware()
|
||||||
|
|
||||||
|
expect(config.ctx.resourceId).toEqual("test")
|
||||||
|
})
|
||||||
|
|
||||||
|
it("generates a resourceId middleware for context request body sub fields", () => {
|
||||||
|
const config = new TestConfiguration(bodySubResource("main", "sub"))
|
||||||
|
config.setBody({
|
||||||
|
main: "main",
|
||||||
|
sub: "test"
|
||||||
|
})
|
||||||
|
|
||||||
|
config.executeMiddleware()
|
||||||
|
|
||||||
|
expect(config.ctx.resourceId).toEqual("main")
|
||||||
|
expect(config.ctx.subResourceId).toEqual("test")
|
||||||
|
})
|
||||||
|
|
||||||
|
it("parses resourceIds correctly for custom middlewares", () => {
|
||||||
|
const middleware = new ResourceIdGetter("body")
|
||||||
|
.mainResource("custom")
|
||||||
|
.subResource("customSub")
|
||||||
|
.build()
|
||||||
|
config = new TestConfiguration(middleware)
|
||||||
|
config.setBody({
|
||||||
|
custom: "test",
|
||||||
|
customSub: "subtest"
|
||||||
|
})
|
||||||
|
|
||||||
|
config.executeMiddleware()
|
||||||
|
|
||||||
|
expect(config.ctx.resourceId).toEqual("test")
|
||||||
|
expect(config.ctx.subResourceId).toEqual("subtest")
|
||||||
|
})
|
||||||
|
})
|
Loading…
Reference in New Issue