|
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164165166167168169170171172173174175176177178179180181182183184185186187188189190191192193194195196197198199200201202203204205206207208209210211212213214215216217218219220221222223224225226227228229230231232233234235236237238239240241242243244245246247248249250251252253254255256257258259260261262263264265266267268269270271272273274275276277278279280281282283284285286287288289290291292293294295296297298299300301302303304305306307308309310311312313314315316317318319320321322323324325326327328329330331332333334335336337338339340341342343344345346347348349350351352353354355356357358359360361362363364365366367368369370371372373374375376377378379380381382383384385386387388389390391392393394395396397398399400401402403404405406407408409410411412413414415416417418419420421422423424425426427428429430431432433 |
- describe("feature: Swagger 2 allowEmptyValue", 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/allow-empty-value.swagger.yaml")
- .click("button.download-url-button")
- .waitForElementVisible(".opblock", 10000)
-
- done()
- })
-
- afterEach(function (client, done) {
- done()
- })
-
- describe("regular parameters", function () {
- it("should set and unset an integer value", function (client) {
- const inputSelector = `tr[data-param-name="int"] input`
-
- client // open try-it-out
- .click("#operations-default-get_regularParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .setValue(inputSelector, "123")
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, execute again
- .setValue(inputSelector, "\u0008\u0008\u0008") // backspaces
- .pause(200)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/regularParams"`)
- })
- it("should set and unset a string value", function (client) {
- const inputSelector = `tr[data-param-name="str"] input`
-
- client // open try-it-out
- .click("#operations-default-get_regularParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .setValue(inputSelector, "123")
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, execute again
- .setValue(inputSelector, "\u0008\u0008\u0008") // backspaces
- .pause(200)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/regularParams"`)
- })
- it("should set and unset a number value", function (client) {
- const inputSelector = `tr[data-param-name="num"] input`
-
- client // open try-it-out
- .click("#operations-default-get_regularParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .setValue(inputSelector, "123")
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, execute again
- .setValue(inputSelector, "\u0008\u0008\u0008") // backspaces
- .pause(200)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/regularParams"`)
- })
- it("should set and unset a boolean value", function (client) {
- const inputSelector = `tr[data-param-name="bool"] select`
-
- client // open try-it-out
- .click("#operations-default-get_regularParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .click(`${inputSelector} [value="true"]`)
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, execute again
- .click(`${inputSelector} [value=""]`)
- .pause(200)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/regularParams"`)
- })
- it("should set and unset an array value", function (client) {
- const inputSelector = `tr[data-param-name="arr"]`
-
- client // open try-it-out
- .click("#operations-default-get_regularParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .click(`${inputSelector} .json-schema-form-item-add`)
- .setValue(`${inputSelector} input`, "asdf")
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, execute again
- .click(`${inputSelector} .json-schema-form-item-remove`)
- .pause(200)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/regularParams"`)
- })
- })
-
- describe("allowEmptyValue parameters", function () {
- describe("normal behavior", function () {
- it("should set and unset an integer value", function (client) {
- const inputSelector = `tr[data-param-name="int"] input`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .setValue(inputSelector, "123")
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, execute again
- .setValue(inputSelector, "\u0008\u0008\u0008") // backspaces
- .pause(200)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams"`)
- })
- it("should set and unset a string value", function (client) {
- const inputSelector = `tr[data-param-name="str"] input`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .setValue(inputSelector, "123")
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, execute again
- .setValue(inputSelector, "\u0008\u0008\u0008") // backspaces
- .pause(200)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams"`)
- })
- it("should set and unset a number value", function (client) {
- const inputSelector = `tr[data-param-name="num"] input`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .setValue(inputSelector, "123")
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, execute again
- .setValue(inputSelector, "\u0008\u0008\u0008") // backspaces
- .pause(200)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams"`)
- })
- it("should set and unset a boolean value", function (client) {
- const inputSelector = `tr[data-param-name="bool"] select`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .click(`${inputSelector} [value="true"]`)
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, execute again
- .click(`${inputSelector} [value=""]`)
- .pause(200)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams"`)
- })
- it("should set and unset an array value", function (client) {
- const inputSelector = `tr[data-param-name="arr"]`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .click(`${inputSelector} .json-schema-form-item-add`)
- .setValue(`${inputSelector} input`, "asdf")
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, execute again
- .click(`${inputSelector} .json-schema-form-item-remove`)
- .pause(200)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams"`)
- })
- })
- describe("send empty inital value behavior", function () {
- it("should send an empty integer value", function (client) {
- const paramSelector = `tr[data-param-name="int"]`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // tick "send empty value" box and execute
- .click(`${paramSelector} .parameter__empty_value_toggle input`)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams?int="`)
- })
- it("should send an empty string value", function (client) {
- const paramSelector = `tr[data-param-name="str"]`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // tick "send empty value" box and execute
- .click(`${paramSelector} .parameter__empty_value_toggle input`)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams?str="`)
- })
- it("should send an empty number value", function (client) {
- const paramSelector = `tr[data-param-name="num"]`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // tick "send empty value" box and execute
- .click(`${paramSelector} .parameter__empty_value_toggle input`)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams?num="`)
- })
- it("should send an empty boolean value", function (client) {
- const paramSelector = `tr[data-param-name="bool"]`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // tick "send empty value" box and execute
- .click(`${paramSelector} .parameter__empty_value_toggle input`)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams?bool="`)
- })
- it("should send an empty array value", function (client) {
- const paramSelector = `tr[data-param-name="arr"]`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // tick "send empty value" box and execute
- .click(`${paramSelector} .parameter__empty_value_toggle input`)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams?arr="`)
- })
- })
- describe("modify and send empty behavior", function () {
- it("should set, unset and send an empty integer value", function (client) {
- const paramSelector = `tr[data-param-name="int"]`
- const inputSelector = `${paramSelector} input`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .setValue(inputSelector, "123")
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, click "send empty", execute again, assert
- .setValue(inputSelector, "\u0008\u0008\u0008") // backspaces
- .pause(400)
- .click(`${paramSelector} .parameter__empty_value_toggle input`)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams?int="`)
- })
- it("should set, unset and send an empty string value", function (client) {
- const paramSelector = `tr[data-param-name="str"]`
- const inputSelector = `${paramSelector} input`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .setValue(inputSelector, "123")
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, click "send empty", execute again, assert
- .setValue(inputSelector, "\u0008\u0008\u0008") // backspaces
- .pause(400)
- .click(`${paramSelector} .parameter__empty_value_toggle input`)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams?str="`)
- })
- it("should set, unset and send an empty number value", function (client) {
- const paramSelector = `tr[data-param-name="num"]`
- const inputSelector = `${paramSelector} input`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .setValue(inputSelector, "123")
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, click "send empty", execute again, assert
- .setValue(inputSelector, "\u0008\u0008\u0008") // backspaces
- .pause(400)
- .click(`${paramSelector} .parameter__empty_value_toggle input`)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams?num="`)
- })
- it("should set, unset and send an empty boolean value", function (client) {
- const paramSelector = `tr[data-param-name="bool"]`
- const inputSelector = `${paramSelector} select`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .click(`${inputSelector} option[value="true"]`)
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, click "send empty", execute again, assert
- .click(`${inputSelector} option[value=""]`)
- .pause(400)
- .click(`${paramSelector} .parameter__empty_value_toggle input`)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams?bool="`)
- })
- it("should set, unset and send an empty array value", function (client) {
- const paramSelector = `tr[data-param-name="arr"]`
-
- client // open try-it-out
- .click("#operations-default-get_emptyValueParams")
- .waitForElementVisible("button.btn.try-out__btn", 5000)
- .click("button.btn.try-out__btn")
- .pause(200)
-
- client // set parameter, to ensure an initial value is set
- .click(`${paramSelector} .json-schema-form-item-add`)
- .setValue(`${paramSelector} input`, "asdf")
- .click("button.btn.execute.opblock-control__btn")
- .pause(200)
-
- client // remove initial value, execute again
- .click(`${paramSelector} .json-schema-form-item-remove`)
- .pause(400)
- .click(`${paramSelector} .parameter__empty_value_toggle input`)
- .click("button.btn.execute.opblock-control__btn")
- .expect.element("textarea.curl").text
- .to.contain(`GET "http://localhost:3230/emptyValueParams?arr="`)
- })
- })
- })
- })
|