Files
swagger-ui/test/e2e/scenarios/initial-render/test.js
2017-06-23 00:57:53 -07:00

172 lines
5.2 KiB
JavaScript

describe("initial render", function () {
let mainPage
describe("for topbar", function () {
let topbar
before(function (client, done) {
done()
})
after(function (client, done) {
client.end(function () {
done()
})
})
afterEach(function (client, done) {
done()
})
beforeEach(function (client, done) {
mainPage = client
.url("localhost:3200")
.page.main()
topbar = mainPage.section.topbar
done()
})
it("renders section", function (client) {
mainPage.expect.section("@topbar").to.be.visible
client.end()
})
it("renders input box", function (client) {
topbar.expect.element("@inputBox").to.be.visible
client.end()
})
it("renders explore button", function (client) {
topbar.expect.element("@btnExplore").to.be.visible
client.end()
})
})
describe("for information", function () {
let informationContainer
beforeEach(function (client, done) {
mainPage = client
.url("localhost:3200")
.page.main()
informationContainer = mainPage.section.informationContainer
done()
})
it("renders section", function (client) {
mainPage.expect.section("@informationContainer").to.be.visible.before(5000)
client.end()
})
it("renders title", function (client) {
informationContainer.waitForElementVisible("@title", 5000)
.assert.containsText("@title", "Swagger Petstore")
.assert.containsText("@version", "1.0.0")
client.end()
})
it("renders base url", function (client) {
informationContainer.waitForElementVisible("@baseUrl", 5000)
.assert.containsText("@baseUrl", "[ Base url: petstore.swagger.io/v2]")
client.end()
})
it("render main url", function (client) {
informationContainer.waitForElementVisible("@mainUrl", 5000)
.assert.attributeEquals("@mainUrl", "href", "http://petstore.swagger.io/v2/swagger.json")
.assert.containsText("@mainUrlContent", "http://petstore.swagger.io/v2/swagger.json")
client.end()
})
it("render description", function (client) {
informationContainer.waitForElementVisible("@description", 5000)
.assert.containsText("@description", "This is a sample server Petstore server. You can find out more about Swagger at http://swagger.io or on irc.freenode.net, #swagger. For this sample, you can use the api key special-key to test the authorization filters.")
.assert.attributeEquals("@swaggerUrl", "href", "http://swagger.io/")
.assert.attributeEquals("@swaggerircUrl", "href", "http://swagger.io/irc/")
client.end()
})
it("render terms-of-service", function (client) {
informationContainer.waitForElementVisible("@termsLink", 5000)
.assert.attributeEquals("@termsLink", "href", "http://swagger.io/terms/")
.assert.containsText("@termsLink", "Terms of service")
client.end()
})
it("render contact-the-developer", function (client) {
informationContainer.waitForElementVisible("@contactDevLink", 5000)
.assert.attributeEquals("@contactDevLink", "href", "mailto:apiteam@swagger.io")
.assert.containsText("@contactDevLink", "Contact the developer")
client.end()
})
it("render apache", function (client) {
informationContainer.waitForElementVisible("@apacheLink", 5000)
.assert.attributeEquals("@apacheLink", "href", "http://www.apache.org/licenses/LICENSE-2.0.html")
.assert.containsText("@apacheLink", "Apache 2.0")
client.end()
})
it("render about swagger", function (client) {
informationContainer.waitForElementVisible("@aboutSwaggerLink", 5000)
.assert.attributeEquals("@aboutSwaggerLink", "href", "http://swagger.io/")
.assert.containsText("@aboutSwaggerLink", "Find out more about Swagger")
client.end()
})
})
describe("for scheme", function () {
let schemeContainer
beforeEach(function (client, done) {
mainPage = client
.url("localhost:3200")
.page.main()
schemeContainer = mainPage.section.schemeContainer
done()
})
it("render section", function (client) {
mainPage.expect.section("@schemeContainer").to.be.visible.before(5000)
client.end()
})
it("render scheme option", function (client) {
schemeContainer.waitForElementVisible("@schemeTitle", 5000)
.assert.containsText("@schemeTitle", "Schemes")
.expect.element("@httpOption").to.be.selected
client.end()
})
it("render authorized button", function (client) {
schemeContainer.waitForElementVisible("@btnAuthorize", 5000)
.expect.element("@btnAuthorize").to.be.visible
client.end()
})
it("render click event", function(client) {
schemeContainer.waitForElementVisible("@btnAuthorize", 5000)
.click("@btnAuthorize")
.assert.visible("@authorizationModal")
.assert.containsText("@appName", "Application: your-app-name")
.assert.containsText("@authorizationUrl", "http://petstore.swagger.io/oauth/dialog")
.assert.containsText("@flow", "implicit")
.assert.value("@inputClientID", "your-client-id")
client.end()
})
})
})