Ekapp/swagger/test/unit/plugins/validate-semantic/2and3/operations.js

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)
})
})
})
})