|
- const dedent = require("dedent")
-
- describe("feature: `example` field support", function () {
-
- describe("Swagger 2", function() {
-
- beforeEach(function (client, done) {
- client
- .url("localhost:3230")
- .page.main()
-
- client.waitForElementVisible(".download-url-input:not([disabled])", 5000)
- .clearValue(".download-url-input")
- .setValue(".download-url-input", "/test-specs/features/example.swagger.yaml")
- .click("button.download-url-button")
- .waitForElementVisible(".opblock", 10000)
- .click("#operations-default-put_one")
- .waitForElementVisible("#operations-default-put_one.is-open", 5000)
-
- done()
- })
-
- afterEach(function (client, done) {
- done()
- })
-
- // Parameters
- // Supports complex root `example` values in Schema objects for bodies
- // Supports nested `example` values in Schema objects for bodies
-
- describe("primitive parameters", function() {
- it("should respect a primitive x-example value", function (client) {
- client
- .click("button.try-out__btn")
- .assert.value(
- `tr[data-param-name="ValidParam"] input[type="text"]`,
- `12345`
- )
- })
- it("should ignore a primitive example value", function (client) {
- client
- .click("button.try-out__btn")
- .assert.value(
- `tr[data-param-name="NotValidParam"] input[type="text"]`,
- ``
- )
- })
- })
-
- describe("object parameters", function() {
- it("should correctly consider property-level schema examples", function(client) {
- client.assert.containsText(`div[data-param-name="body"] pre`,
- dedent(`
- {
- "one": "hello!",
- "two": {
- "uno": "wow!",
- "dos": "hey there!"
- }
- }
- `)
- )
- })
- it("should correctly consider root schema-level schema examples", function(client) {
- client.assert.containsText(`div[data-param-name="body2"] pre`,
- dedent(`
- {
- "foo": "hey",
- "bar": 123
- }
- `)
- )
- })
- it("should correctly consider nested schema-level schema examples", function(client) {
- client.assert.containsText(`div[data-param-name="body3"] pre`,
- dedent(`
- {
- "one": {
- "uno": "woohoo!",
- "dos": "amazing!"
- }
- }
- `)
- )
- })
- })
-
- describe("responses", function() {
- it("should correctly consider schema-level examples", function (client) {
- client.assert.containsText(`tr.response[data-code="201"] pre`,
- dedent(`
- {
- "code": 201,
- "payload": [
- {
- "id": 1,
- "code": "AE2",
- "name": "Yono"
- }
- ]
- }
- `)
- )
- })
- it("should correctly consider property-level examples", function (client) {
- client.assert.containsText(`tr.response[data-code="202"] pre`,
- dedent(`
- {
- "code": 202,
- "payload": [
- {
- "id": 1,
- "code": "AE2",
- "name": "Yono"
- }
- ]
- }
- `)
- )
- })
- })
- })
- describe("OpenAPI 3.0", function() {
- beforeEach(function (client, done) {
- client
- .url("localhost:3230")
- .page.main()
-
- client.waitForElementVisible(".download-url-input:not([disabled])", 5000)
- .clearValue(".download-url-input")
- .setValue(".download-url-input", "/test-specs/features/example.openapi.yaml")
- .click("button.download-url-button")
- .waitForElementVisible(".opblock-summary-description", 10000)
- .click("#operations-agent-editAgent")
- .waitForElementVisible("#operations-agent-editAgent.is-open", 5000)
-
- done()
- })
-
- describe("parameters", function() {
- it("should respect a primitive example value", function(client) {
- client
- .click("button.try-out__btn")
- .assert.value(
- `div.parameters-container > div > table > tbody > tr > td.col.parameters-col_description > input[type="text"]`,
- `12345`
- )
- })
- })
-
- describe("request bodies", function() {
- it("should correctly consider media type-level examples", function (client) {
- client
- .click(`select.content-type option[value="application/json_media-type-level"]`)
- .assert.containsText(`pre.body-param__example`,
- dedent(`
- {
- "code": "AE1",
- "name": "Andrew"
- }
- `)
- )
- })
- it("should correctly consider schema-level examples", function (client) {
- client
- .click(`select.content-type option[value="application/json_schema-level"]`)
- .assert.containsText(`pre.body-param__example`,
- dedent(`
- {
- "code": "AE1",
- "name": "Andrew"
- }
- `)
- )
- })
- it("should correctly consider property-level examples", function (client) {
- client
- .click(`select.content-type option[value="application/json_property-level"]`)
- .assert.containsText(`pre.body-param__example`,
- dedent(`
- {
- "code": "AE1",
- "name": "Andrew"
- }
- `)
- )
- })
- })
- describe("responses", function() {
- it("should correctly consider media type-level examples", function (client) {
- client.assert.containsText(`tr.response[data-code="200"] pre`,
- dedent(`
- {
- "code": 200,
- "payload": [
- {
- "id": 1,
- "code": "AE2",
- "name": "Yono"
- }
- ]
- }
- `)
- )
- })
- it("should correctly consider schema-level examples", function (client) {
- client.assert.containsText(`tr.response[data-code="201"] pre`,
- dedent(`
- {
- "code": 201,
- "payload": [
- {
- "id": 1,
- "code": "AE2",
- "name": "Yono"
- }
- ]
- }
- `)
- )
- })
- it("should correctly consider property-level examples", function (client) {
- client.assert.containsText(`tr.response[data-code="202"] pre`,
- dedent(`
- {
- "code": 202,
- "payload": [
- {
- "id": 1,
- "code": "AE2",
- "name": "Yono"
- }
- ]
- }
- `)
- )
- })
- })
- })
- })
|