95 lines
2.6 KiB
JavaScript
95 lines
2.6 KiB
JavaScript
|
import expect from "expect"
|
||
|
|
||
|
import validateHelper, { expectNoErrors } from "../validate-helper.js"
|
||
|
|
||
|
describe("validation plugin - semantic - 2and3 operations", () => {
|
||
|
describe("Operations must have unique operationIds", () => {
|
||
|
describe("OpenAPI 3.0", () => {
|
||
|
it("should return an error when operationId collisions exist", () => {
|
||
|
const spec = {
|
||
|
openapi: "3.0.0",
|
||
|
paths: {
|
||
|
"/": {
|
||
|
get: {
|
||
|
operationId: "myId"
|
||
|
},
|
||
|
post: {
|
||
|
operationId: "myId"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return validateHelper(spec)
|
||
|
.then(system => {
|
||
|
const allErrors = system.errSelectors.allErrors().toJS()
|
||
|
const firstError = allErrors[0]
|
||
|
expect(allErrors.length).toEqual(1)
|
||
|
expect(firstError.message).toEqual(`Operations must have unique operationIds.`)
|
||
|
expect(firstError.path).toEqual(["paths", "/", "post", "operationId"])
|
||
|
})
|
||
|
})
|
||
|
it("should not return an error when operationId collisions don't exist", () => {
|
||
|
const spec = {
|
||
|
openapi: "3.0.0",
|
||
|
paths: {
|
||
|
"/": {
|
||
|
get: {
|
||
|
operationId: "myId1"
|
||
|
},
|
||
|
post: {
|
||
|
operationId: "myId2"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return expectNoErrors(spec)
|
||
|
})
|
||
|
})
|
||
|
describe("Swagger 2.0", () => {
|
||
|
it("should return an error when operationId collisions exist", () => {
|
||
|
const spec = {
|
||
|
swagger: "2.0",
|
||
|
paths: {
|
||
|
"/": {
|
||
|
get: {
|
||
|
operationId: "myId"
|
||
|
},
|
||
|
post: {
|
||
|
operationId: "myId"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return validateHelper(spec)
|
||
|
.then(system => {
|
||
|
const allErrors = system.errSelectors.allErrors().toJS()
|
||
|
const firstError = allErrors[0]
|
||
|
expect(allErrors.length).toEqual(1)
|
||
|
expect(firstError.message).toEqual(`Operations must have unique operationIds.`)
|
||
|
expect(firstError.path).toEqual(["paths", "/", "post", "operationId"])
|
||
|
})
|
||
|
})
|
||
|
it("should not return an error when operationId collisions don't exist", () => {
|
||
|
const spec = {
|
||
|
swagger: "2.0",
|
||
|
paths: {
|
||
|
"/": {
|
||
|
get: {
|
||
|
operationId: "myId1"
|
||
|
},
|
||
|
post: {
|
||
|
operationId: "myId2"
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
|
||
|
return expectNoErrors(spec)
|
||
|
})
|
||
|
})
|
||
|
})
|
||
|
})
|