102 lines
2.9 KiB
JavaScript
102 lines
2.9 KiB
JavaScript
describe("Editor #1862: codegen download links downgrade HTTPS", () => {
|
|
describe("in Swagger 2", () => {
|
|
beforeEach(() => {
|
|
cy.visit("/?url=/documents/petstore.swagger.yaml")
|
|
|
|
cy.server()
|
|
|
|
cy.route({
|
|
url: "*//generator.swagger.io/api/gen/servers",
|
|
response: ["nodejs"]
|
|
})
|
|
|
|
cy.route({
|
|
url: "*//generator.swagger.io/api/gen/clients",
|
|
response: ["javascript"]
|
|
})
|
|
})
|
|
|
|
it("should force HTTPS server downloads from Swagger.io Generator", () => {
|
|
let wasHttpHit = false
|
|
let wasHttpsHit = false
|
|
|
|
// Given
|
|
|
|
cy.route({
|
|
url: "https://generator.swagger.io/api/gen/servers/nodejs",
|
|
method: "POST",
|
|
response: {
|
|
"code": "a92bc815-f6e3-4a56-839b-fd2e6f379d52",
|
|
"link": "http://generator.swagger.io:80/api/gen/download/a92bc815-f6e3-4a56-839b-fd2e6f379d52"
|
|
}
|
|
}).as("httpsServerNodejs")
|
|
|
|
cy.route({
|
|
url: "http://generator.swagger.io/api/gen/download/*",
|
|
onRequest: () => wasHttpHit = true,
|
|
response: {}
|
|
}).as("httpServerGenDownload")
|
|
|
|
cy.route({
|
|
url: "https://generator.swagger.io/api/gen/download/*",
|
|
onRequest: () => wasHttpsHit = true,
|
|
response: {}
|
|
}).as("httpsServerGenDownload")
|
|
|
|
// Then
|
|
cy.contains("Generate Server")
|
|
.click()
|
|
|
|
cy.contains("nodejs")
|
|
.click()
|
|
|
|
cy.wait(["@httpsServerNodejs", "@httpsServerGenDownload"])
|
|
.then(() => {
|
|
expect(wasHttpHit).to.equal(false, "has HTTP server been hit")
|
|
expect(wasHttpsHit).to.equal(true, "has HTTPS server been hit")
|
|
})
|
|
})
|
|
|
|
it("should force HTTPS client downloads from Swagger.io Generator", () => {
|
|
let wasHttpHit = false
|
|
let wasHttpsHit = false
|
|
|
|
// Given
|
|
|
|
cy.route({
|
|
url: "https://generator.swagger.io/api/gen/clients/javascript",
|
|
method: "POST",
|
|
response: {
|
|
"code": "a92bc815-f6e3-4a56-839b-fd2e6f379d52",
|
|
"link": "http://generator.swagger.io:80/api/gen/download/a92bc815-f6e3-4a56-839b-fd2e6f379d52"
|
|
}
|
|
}).as("httpsClientJavascript")
|
|
|
|
cy.route({
|
|
url: "http://generator.swagger.io/api/gen/download/*",
|
|
onRequest: () => wasHttpHit = true,
|
|
response: {}
|
|
}).as("httpClientGenDownload")
|
|
|
|
cy.route({
|
|
url: "https://generator.swagger.io/api/gen/download/*",
|
|
onRequest: () => wasHttpsHit = true,
|
|
response: {}
|
|
}).as("httpsClientGenDownload")
|
|
|
|
// Then
|
|
cy.contains("Generate Client")
|
|
.click()
|
|
|
|
cy.contains("javascript")
|
|
.click()
|
|
|
|
cy.wait(["@httpsClientJavascript", "@httpsClientGenDownload"])
|
|
.then(() => {
|
|
expect(wasHttpHit).to.equal(false, "has HTTP server been hit")
|
|
expect(wasHttpsHit).to.equal(true, "has HTTPS server been hit")
|
|
})
|
|
})
|
|
})
|
|
})
|