ft: JsonSchema components are now ImmutableJS compliant (#5952)
bug: JsonSchema components should validate schema properties exists - schema - type - format - enum bug: fix a debounce error in JsonSchema_string if value is null ft: new simplified JsonSchemaArrayItemText component test: use immutableJS for `json-schema-form` test test: add dev scripts to run `cypress open` test: new cypress `schema-form` tests
This commit is contained in:
339
test/e2e-cypress/static/documents/features/schema-form-core.yaml
Normal file
339
test/e2e-cypress/static/documents/features/schema-form-core.yaml
Normal file
@@ -0,0 +1,339 @@
|
||||
openapi: 3.0.0
|
||||
info:
|
||||
title: "Schema in Parameters"
|
||||
description: |-
|
||||
This document has examples for examining the `schema` within a set of parameters
|
||||
* String Enum (/pet/findByStatus)
|
||||
* Array of Strings (/pet/findByTags)
|
||||
* Array of Boolean (/petOwner/listOfServiceTrainer)
|
||||
* Array of Objects (/petOwners/createWithList)
|
||||
* Array of Enum (/petOwner/findByPreference)
|
||||
|
||||
This document also covers a debounce test for `schema` type `string
|
||||
* String (/petOwner)
|
||||
|
||||
This documents does not cover:
|
||||
* Array of Arrays
|
||||
|
||||
Additional notes
|
||||
* Provides additional coverage and examples not covered in the Multiple Examples Core Document (Test)
|
||||
* Code component reference `JsonSchemaForm`
|
||||
* `pet` and `tag` schemas are reduced from Swagger Petstore
|
||||
version: "1.0.0"
|
||||
paths:
|
||||
/pet/findByStatus:
|
||||
get:
|
||||
summary: Finds Pets by status
|
||||
description: Multiple status values can be provided with comma separated strings
|
||||
operationId: findPetsByStatus
|
||||
parameters:
|
||||
- name: status
|
||||
in: query
|
||||
description: Status values that need to be considered for filter
|
||||
required: false
|
||||
explode: true
|
||||
schema:
|
||||
type: string
|
||||
enum:
|
||||
- available
|
||||
- pending
|
||||
- sold
|
||||
default: available
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
application/xml:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Pet'
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Pet'
|
||||
'400':
|
||||
description: Invalid status value
|
||||
security:
|
||||
- petstore_auth:
|
||||
- 'write:pets'
|
||||
- 'read:pets'
|
||||
/pet/findByTags:
|
||||
get:
|
||||
tags:
|
||||
- pet
|
||||
summary: Finds Pets by tags
|
||||
description: >-
|
||||
Multiple tags can be provided with comma separated strings. Use tag1,
|
||||
tag2, tag3 for testing.
|
||||
operationId: findPetsByTags
|
||||
parameters:
|
||||
- name: tags
|
||||
in: query
|
||||
description: Tags to filter by
|
||||
required: false
|
||||
explode: true
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
application/xml:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Pet'
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/Pet'
|
||||
'400':
|
||||
description: Invalid tag value
|
||||
security:
|
||||
- petstore_auth:
|
||||
- 'write:pets'
|
||||
- 'read:pets'
|
||||
'/petOwner/{petOwnerId}':
|
||||
get:
|
||||
tags:
|
||||
- petOwner
|
||||
summary: Find pet owner by ID
|
||||
description: Returns a single pet owner if ID found, list if no ID provided
|
||||
operationId: getPetOwnerById
|
||||
parameters:
|
||||
- name: petOwnerId
|
||||
in: path
|
||||
description: ID of pet owner to return
|
||||
required: false
|
||||
schema:
|
||||
type: integer
|
||||
format: int64
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
application/xml:
|
||||
schema:
|
||||
$ref: '#/components/schemas/PetOwner'
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/PetOwner'
|
||||
'400':
|
||||
description: Invalid ID supplied
|
||||
'404':
|
||||
description: Pet not found
|
||||
/petOwner/listOfServiceTrainer:
|
||||
get:
|
||||
tags:
|
||||
- petOwner
|
||||
summary: List of Service Trainers
|
||||
description: >-
|
||||
Expect boolean, but allow both true and false
|
||||
operationId: listOfServiceTrainer
|
||||
parameters:
|
||||
- name: tags
|
||||
in: query
|
||||
description: Boolean to filter by
|
||||
required: false
|
||||
explode: true
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
type: boolean
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
application/xml:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/PetOwner'
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/PetOwner'
|
||||
'400':
|
||||
description: Invalid tag value
|
||||
/petOwner/findByPreference:
|
||||
get:
|
||||
tags:
|
||||
- petOwner
|
||||
summary: Find by Pet Owner Preferences
|
||||
description: >-
|
||||
Expect enum
|
||||
operationId: findByPreference
|
||||
parameters:
|
||||
- name: tags
|
||||
in: query
|
||||
description: Enum to filter by
|
||||
required: false
|
||||
explode: true
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
type: string
|
||||
enum:
|
||||
- dog
|
||||
- cat
|
||||
- bird
|
||||
- fish
|
||||
- other
|
||||
default: dog
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
application/xml:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/PetOwner'
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/PetOwner'
|
||||
'400':
|
||||
description: Invalid tag value
|
||||
components:
|
||||
/petOwner/createWithList:
|
||||
post:
|
||||
tags:
|
||||
- petOwner
|
||||
summary: Creates list of pet owners with given input array
|
||||
operationId: petOwnerCreateWithList
|
||||
requestBody:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/PetOwner'
|
||||
responses:
|
||||
'200':
|
||||
description: successful operation
|
||||
content:
|
||||
application/xml:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/PetOwner'
|
||||
application/json:
|
||||
schema:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/PetOwner'
|
||||
'400':
|
||||
description: Invalid values
|
||||
schemas:
|
||||
Pet:
|
||||
x-swagger-router-model: io.swagger.petstore.model.Pet
|
||||
required:
|
||||
- name
|
||||
- photoUrls
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
format: int64
|
||||
example: 10
|
||||
name:
|
||||
type: string
|
||||
example: doggie
|
||||
# remove category property
|
||||
petOwners:
|
||||
type: array
|
||||
items:
|
||||
$ref: '#/components/schemas/PetOwner'
|
||||
photoUrls:
|
||||
type: array
|
||||
xml:
|
||||
wrapped: true
|
||||
items:
|
||||
type: string
|
||||
xml:
|
||||
name: photoUrl
|
||||
tags:
|
||||
type: array
|
||||
xml:
|
||||
wrapped: true
|
||||
items:
|
||||
$ref: '#/components/schemas/Tag'
|
||||
xml:
|
||||
name: tag
|
||||
status:
|
||||
type: string
|
||||
description: pet status in the store
|
||||
enum:
|
||||
- available
|
||||
- pending
|
||||
- sold
|
||||
xml:
|
||||
name: pet
|
||||
type: object
|
||||
# remove ApiResponse
|
||||
PetOwner:
|
||||
type: "object"
|
||||
properties:
|
||||
id:
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
example: 10
|
||||
petId:
|
||||
type: "integer"
|
||||
format: "int64"
|
||||
example: 201
|
||||
petOwnerFirstName:
|
||||
type: "string"
|
||||
example: "John"
|
||||
petOwnerLastName:
|
||||
type: "string"
|
||||
example: "Smith"
|
||||
petOwnerContact:
|
||||
type: "string"
|
||||
example: "john.smith@fakeemail.co"
|
||||
petOwnerStatus:
|
||||
type: "integer"
|
||||
format: "int32"
|
||||
description: "Pet Owner Status"
|
||||
example: 302
|
||||
petOwnerPreferences:
|
||||
type: "string"
|
||||
description: "Pet Owner Preferred Pet Types"
|
||||
enum:
|
||||
- "dog"
|
||||
- "cat"
|
||||
- "bird"
|
||||
- "fish"
|
||||
- "other"
|
||||
petOwnerServiceTrainer:
|
||||
type: "boolean"
|
||||
description: "Pet Onwer is Service Trainer"
|
||||
default: false
|
||||
Tag:
|
||||
x-swagger-router-model: io.swagger.petstore.model.Tag
|
||||
properties:
|
||||
id:
|
||||
type: integer
|
||||
format: int64
|
||||
name:
|
||||
type: string
|
||||
xml:
|
||||
name: tag
|
||||
type: object
|
||||
requestBodies:
|
||||
Pet:
|
||||
content:
|
||||
application/json:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Pet'
|
||||
application/xml:
|
||||
schema:
|
||||
$ref: '#/components/schemas/Pet'
|
||||
description: Pet object that needs to be added to the store
|
||||
@@ -0,0 +1,119 @@
|
||||
openapi: 3.0.0
|
||||
info:
|
||||
description: No type for schema
|
||||
version: "1"
|
||||
title: "No type"
|
||||
paths:
|
||||
/case-one-no-schema:
|
||||
parameters:
|
||||
- name: namespace
|
||||
description: The custom resource's namespace
|
||||
# schema:
|
||||
in: path
|
||||
required: true
|
||||
get:
|
||||
description: sf
|
||||
responses:
|
||||
default:
|
||||
description: one
|
||||
/case-one-no-type-or-format:
|
||||
parameters:
|
||||
- name: namespace
|
||||
description: The custom resource's namespace
|
||||
schema:
|
||||
in: path
|
||||
required: true
|
||||
get:
|
||||
description: sf
|
||||
responses:
|
||||
default:
|
||||
description: one
|
||||
/case-one-type-only-no-format:
|
||||
parameters:
|
||||
- name: namespace
|
||||
description: The custom resource's namespace
|
||||
schema:
|
||||
type: integer
|
||||
in: path
|
||||
required: true
|
||||
get:
|
||||
description: sf
|
||||
responses:
|
||||
default:
|
||||
description: one
|
||||
/case-one-format-only-no-type:
|
||||
parameters:
|
||||
- name: namespace
|
||||
description: The custom resource's namespace
|
||||
schema:
|
||||
format: int64
|
||||
in: path
|
||||
required: true
|
||||
get:
|
||||
description: sf
|
||||
responses:
|
||||
default:
|
||||
description: one
|
||||
/case-two-no-schema:
|
||||
get:
|
||||
description: sf
|
||||
responses:
|
||||
default:
|
||||
description: one
|
||||
parameters:
|
||||
- name: namespace
|
||||
in: path
|
||||
description: The custom resource's namespace
|
||||
required: true
|
||||
# schema:
|
||||
/case-two-no-type-or-format:
|
||||
get:
|
||||
description: sf
|
||||
responses:
|
||||
default:
|
||||
description: one
|
||||
parameters:
|
||||
- name: namespace
|
||||
in: path
|
||||
description: The custom resource's namespace
|
||||
required: true
|
||||
schema:
|
||||
/case-two-type-only-no-format:
|
||||
get:
|
||||
description: sf
|
||||
responses:
|
||||
default:
|
||||
description: one
|
||||
parameters:
|
||||
- name: namespace
|
||||
in: path
|
||||
description: The custom resource's namespace
|
||||
required: true
|
||||
schema:
|
||||
type: integer
|
||||
/case-two-format-only-no-type:
|
||||
get:
|
||||
description: sf
|
||||
responses:
|
||||
default:
|
||||
description: one
|
||||
parameters:
|
||||
- name: namespace
|
||||
in: path
|
||||
description: The custom resource's namespace
|
||||
required: true
|
||||
schema:
|
||||
format: int64
|
||||
/case-two-not-a-real-type:
|
||||
get:
|
||||
description: sf
|
||||
responses:
|
||||
default:
|
||||
description: one
|
||||
parameters:
|
||||
- name: namespace
|
||||
in: path
|
||||
description: The custom resource's namespace
|
||||
required: true
|
||||
schema:
|
||||
type: "NotARealType"
|
||||
879
test/e2e-cypress/tests/features/schema-form.js
Normal file
879
test/e2e-cypress/tests/features/schema-form.js
Normal file
@@ -0,0 +1,879 @@
|
||||
/**
|
||||
* @prettier
|
||||
*/
|
||||
|
||||
describe("OpenAPI 3.0 Additional JsonSchemaForm in a Parameter", () => {
|
||||
describe("incomplete API definition with missing schema key or schema value(s)", () => {
|
||||
describe("parameter exists as global", () => {
|
||||
it("should render when parameter exists as global, but missing schema key", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-missing-values.yaml"
|
||||
)
|
||||
.get("#operations-default-get_case_one_no_schema")
|
||||
.click()
|
||||
.get(".opblock-description .renderedMarkdown p")
|
||||
.should("have.text", "sf")
|
||||
})
|
||||
it("should render when parameter exists as global, but missing all schema values", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-missing-values.yaml"
|
||||
)
|
||||
.get("#operations-default-get_case_one_no_type_or_format")
|
||||
.click()
|
||||
.get(".opblock-description .renderedMarkdown p")
|
||||
.should("have.text", "sf")
|
||||
})
|
||||
it("should render when parameter exists as global, schema key exists, but missing schema values: format", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-missing-values.yaml"
|
||||
)
|
||||
.get("#operations-default-get_case_one_format_only_no_type")
|
||||
.click()
|
||||
.get(".opblock-description .renderedMarkdown p")
|
||||
.should("have.text", "sf")
|
||||
})
|
||||
it("should render when parameter exists as global, schema key exists, but missing schema value: type", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-missing-values.yaml"
|
||||
)
|
||||
.get("#operations-default-get_case_one_type_only_no_format")
|
||||
.click()
|
||||
.get(".opblock-description .renderedMarkdown p")
|
||||
.should("have.text", "sf")
|
||||
})
|
||||
})
|
||||
describe("parameter exists in method", () => {
|
||||
it("should render when parameter exists in method, but missing schema key", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-missing-values.yaml"
|
||||
)
|
||||
.get("#operations-default-get_case_two_no_schema")
|
||||
.click()
|
||||
.get(".opblock-description .renderedMarkdown p")
|
||||
.should("have.text", "sf")
|
||||
})
|
||||
it("should render when parameter exists in method, schema key exists, but missing all schema values", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-missing-values.yaml"
|
||||
)
|
||||
.get("#operations-default-get_case_two_no_type_or_format")
|
||||
.click()
|
||||
.get(".opblock-description .renderedMarkdown p")
|
||||
.should("have.text", "sf")
|
||||
})
|
||||
it("should render when parameter exists in method, schema key exists, but missing schema value: format", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-missing-values.yaml"
|
||||
)
|
||||
.get("#operations-default-get_case_one_type_only_no_format")
|
||||
.click()
|
||||
.get(".opblock-description .renderedMarkdown p")
|
||||
.should("have.text", "sf")
|
||||
})
|
||||
it("should render when parameter exists in method, schema key exists, but missing schema value: type", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-missing-values.yaml"
|
||||
)
|
||||
.get("#operations-default-get_case_one_format_only_no_type")
|
||||
.click()
|
||||
.get(".opblock-description .renderedMarkdown p")
|
||||
.should("have.text", "sf")
|
||||
})
|
||||
})
|
||||
})
|
||||
describe("/Array", () => {
|
||||
describe("in a Parameter", () => {
|
||||
it("should allow modification of values in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/multiple-examples-core.openapi.yaml"
|
||||
)
|
||||
.get("#operations-default-post_Array")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".parameters-col_description .examples-select > select")
|
||||
.select("ArrayExampleB")
|
||||
// Add a new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item:last-of-type > input")
|
||||
.type("5")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
])
|
||||
})
|
||||
.get(".parameters-col_description .examples-select > select")
|
||||
.find(":selected")
|
||||
.should("have.text", "[Modified value]")
|
||||
})
|
||||
it("should allow removal of added value in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/multiple-examples-core.openapi.yaml"
|
||||
)
|
||||
.get("#operations-default-post_Array")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".parameters-col_description .examples-select > select")
|
||||
.select("ArrayExampleB")
|
||||
// Add a new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item:last-of-type > input")
|
||||
.type("5")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
])
|
||||
})
|
||||
.get(".parameters-col_description .examples-select > select")
|
||||
.find(":selected")
|
||||
.should("have.text", "[Modified value]")
|
||||
// Remove the last item that was just added
|
||||
.get(".json-schema-form-item:last-of-type > .json-schema-form-item-remove")
|
||||
.click()
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
])
|
||||
})
|
||||
})
|
||||
it("should allow removal of nth of values in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/multiple-examples-core.openapi.yaml"
|
||||
)
|
||||
.get("#operations-default-post_Array")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".parameters-col_description .examples-select > select")
|
||||
.select("ArrayExampleB")
|
||||
// Add a new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item:last-of-type > input")
|
||||
.type("5")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
])
|
||||
})
|
||||
.get(".parameters-col_description .examples-select > select")
|
||||
.find(":selected")
|
||||
.should("have.text", "[Modified value]")
|
||||
// Remove the second item in list
|
||||
.get(".json-schema-form-item:nth-child(2) > .json-schema-form-item-remove")
|
||||
.click()
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"1",
|
||||
"3",
|
||||
"4",
|
||||
"5"
|
||||
])
|
||||
})
|
||||
})
|
||||
it("should allow execution of operation in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/multiple-examples-core.openapi.yaml"
|
||||
)
|
||||
.get("#operations-default-post_Array")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".parameters-col_description .examples-select > select")
|
||||
.select("ArrayExampleB")
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
})
|
||||
it("should add empty item and allow execution of operation in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/multiple-examples-core.openapi.yaml"
|
||||
)
|
||||
.get("#operations-default-post_Array")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".parameters-col_description .examples-select > select")
|
||||
.select("ArrayExampleB")
|
||||
// Add a new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
// Execute without prior typing a value
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
})
|
||||
})
|
||||
})
|
||||
describe("Petstore", () => {
|
||||
describe("/pet/findByStatus", () => {
|
||||
it("should render the operation, execute with default value", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-default-findPetsByStatus")
|
||||
.click()
|
||||
// Expand operation
|
||||
.get(".opblock-title span")
|
||||
.should("have.text", "Parameters")
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "available")
|
||||
})
|
||||
it("should render the operation, modify value, and execute with modfied value", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-default-findPetsByStatus")
|
||||
.click()
|
||||
// Expand operation
|
||||
.get(".opblock-title span")
|
||||
.should("have.text", "Parameters")
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Select
|
||||
.get(".parameters-col_description > select")
|
||||
.select("pending")
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "pending")
|
||||
})
|
||||
})
|
||||
describe("/pet/findByTags", () => {
|
||||
it("should allow modification of values in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-pet-findPetsByTags")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Add a new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item > input")
|
||||
.type("spotted")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"spotted",
|
||||
])
|
||||
})
|
||||
})
|
||||
it("should allow removal of added value in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-pet-findPetsByTags")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Add a new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item:last-of-type > input")
|
||||
.type("spotted")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"spotted",
|
||||
])
|
||||
})
|
||||
// Remove the last item that was just added
|
||||
.get(".json-schema-form-item:last-of-type > .json-schema-form-item-remove")
|
||||
.click()
|
||||
.get(".json-schema-form-item > input")
|
||||
.should("not.exist")
|
||||
})
|
||||
it("should allow removal of nth of values in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-pet-findPetsByTags")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Add a new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item:last-of-type > input")
|
||||
.type("spotted")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"spotted",
|
||||
])
|
||||
})
|
||||
// Add a 2nd new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item:last-of-type > input")
|
||||
.type("large")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"spotted",
|
||||
"large"
|
||||
])
|
||||
})
|
||||
// Add a 3rd new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item:last-of-type > input")
|
||||
.type("puppy")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"spotted",
|
||||
"large",
|
||||
"puppy"
|
||||
])
|
||||
})
|
||||
// Remove the second item in list
|
||||
.get(".json-schema-form-item:nth-child(2) > .json-schema-form-item-remove")
|
||||
.click()
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"spotted",
|
||||
"puppy"
|
||||
])
|
||||
})
|
||||
})
|
||||
it("should allow execution of operation without modifications in Try-It-Out (debounce)", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-pet-findPetsByTags")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "findByTags")
|
||||
})
|
||||
it("should add empty item and allow execution of operation in Try-It-Out (debounce)", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-pet-findPetsByTags")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Add a new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
// Execute without prior typing a value
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "findByTags")
|
||||
})
|
||||
it("should add modified item and allow execution of operation in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-pet-findPetsByTags")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Add a new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item > input")
|
||||
.type("spotted")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"spotted",
|
||||
])
|
||||
})
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "spotted")
|
||||
})
|
||||
it("should add 3 modified items, remove the middle child, and allow execution of operation Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-pet-findPetsByTags")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Add a new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item:last-of-type > input")
|
||||
.type("spotted")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"spotted",
|
||||
])
|
||||
})
|
||||
// Add a 2nd new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item:last-of-type > input")
|
||||
.type("large")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"spotted",
|
||||
"large"
|
||||
])
|
||||
})
|
||||
// Add a 3rd new item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item:last-of-type > input")
|
||||
.type("puppy")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"spotted",
|
||||
"large",
|
||||
"puppy"
|
||||
])
|
||||
})
|
||||
// Remove the second item in list
|
||||
.get(".json-schema-form-item:nth-child(2) > .json-schema-form-item-remove")
|
||||
.click()
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"spotted",
|
||||
"puppy"
|
||||
])
|
||||
})
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "tags=spotted&tags=puppy")
|
||||
.should("not.have.text", "large")
|
||||
})
|
||||
})
|
||||
describe("/petOwner/{petOwnerId}", () => {
|
||||
// This is a (GET) debounce test for schema type: string
|
||||
it("should render the operation, and allow execute of operation with empty value (debounce)", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-petOwner-getPetOwnerById")
|
||||
.click()
|
||||
// Expand operation
|
||||
.get(".opblock-title span")
|
||||
.should("have.text", "Parameters")
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "petOwner")
|
||||
})
|
||||
it("should render the operation, and input field, and allow execute of operation", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-petOwner-getPetOwnerById")
|
||||
.click()
|
||||
// Expand operation
|
||||
.get(".opblock-title span")
|
||||
.should("have.text", "Parameters")
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".parameters-col_description > input")
|
||||
.type("123")
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "petOwner")
|
||||
.should("contain.text", "123")
|
||||
})
|
||||
})
|
||||
describe("/petOwner/listOfServiceTrainer", () => {
|
||||
it("should allow execution of operation with value=true in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-petOwner-listOfServiceTrainer")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// add 1st item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item > select")
|
||||
.select("true")
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "tags=true")
|
||||
})
|
||||
it("should allow execution of operation with value=false in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-petOwner-listOfServiceTrainer")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// add 1st item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item > select")
|
||||
.select("false")
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "tags=false")
|
||||
})
|
||||
it("should allow execution of operation with value=true&value=false in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-petOwner-listOfServiceTrainer")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// add 1st item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item > select")
|
||||
.select("true")
|
||||
// add 2nd item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item:last-of-type > select")
|
||||
.select("false")
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "tags=true&tags=false")
|
||||
})
|
||||
it("should allow execution of operation with value=false after removing value=true in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-petOwner-listOfServiceTrainer")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// add 1st item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item > select")
|
||||
.select("true")
|
||||
// add 2nd item
|
||||
.get(".json-schema-form-item-add")
|
||||
.click()
|
||||
.get(".json-schema-form-item:last-of-type > select")
|
||||
.select("false")
|
||||
// remove 1st item
|
||||
.get(".json-schema-form-item:nth-child(1) > .json-schema-form-item-remove")
|
||||
.click()
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "tags=false")
|
||||
})
|
||||
it("should allow execution of operation with value=(empty) in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-petOwner-listOfServiceTrainer")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "listOfServiceTrainer")
|
||||
})
|
||||
})
|
||||
describe("/petOwner/findByPreference", () => {
|
||||
it("should allow execution of operation with value=(empty) in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-petOwner-findByPreference")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "findByPreference")
|
||||
})
|
||||
it("should allow execution of operation with selected value in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-petOwner-findByPreference")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Select
|
||||
.get(".parameters-col_description > select")
|
||||
.select("dog")
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "findByPreference")
|
||||
.should("contain.text", "dog")
|
||||
})
|
||||
it("should allow execution of operation with multiple selected values in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-petOwner-findByPreference")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Select
|
||||
.get(".parameters-col_description > select")
|
||||
.select(["dog", "cat"])
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "findByPreference")
|
||||
.should("contain.text", "dog")
|
||||
.should("contain.text", "cat")
|
||||
})
|
||||
})
|
||||
describe("/petOwner/createWithList", () => {
|
||||
it("should allow execution of operation with default text in textArea in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-petOwner-petOwnerCreateWithList")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "createWithList")
|
||||
})
|
||||
it("should allow execution of operation with cleared textArea in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-petOwner-petOwnerCreateWithList")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".body-param__text")
|
||||
.clear()
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "createWithList")
|
||||
})
|
||||
it("should allow execution of operation with modified textArea in Try-It-Out", () => {
|
||||
cy.visit(
|
||||
"/?url=/documents/features/schema-form-core.yaml"
|
||||
)
|
||||
.get("#operations-petOwner-petOwnerCreateWithList")
|
||||
.click()
|
||||
// Expand Try It Out
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
.get(".body-param__text")
|
||||
.clear()
|
||||
// note: adding this much type adds 6+ seconds to test
|
||||
.type(`[
|
||||
{
|
||||
"id": 10,
|
||||
"petId": 201,
|
||||
"petOwnerFirstName": "John",
|
||||
},
|
||||
{
|
||||
"id": 11,
|
||||
"petId": 201,
|
||||
"petOwnerFirstName": "Jane",
|
||||
}
|
||||
]`
|
||||
)
|
||||
.should("contain.text", "Jane")
|
||||
.should("contain.text", "201")
|
||||
// Execute
|
||||
.get(".execute.opblock-control__btn")
|
||||
.click()
|
||||
// Expect new element to be visible after Execute
|
||||
.get(".btn-clear.opblock-control__btn")
|
||||
.should("have.text", "Clear")
|
||||
// Compare Request URL
|
||||
.get(".request-url pre.microlight")
|
||||
.should("contain.text", "createWithList")
|
||||
// Compare Curl
|
||||
.get(".curl")
|
||||
.should("contain.text", "Jane")
|
||||
.should("contain.text", "201")
|
||||
})
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -1,6 +1,6 @@
|
||||
/* eslint-env mocha */
|
||||
import React from "react"
|
||||
import { List } from "immutable"
|
||||
import Immutable, { List } from "immutable"
|
||||
import expect, { createSpy } from "expect"
|
||||
import { Select, Input, TextArea } from "components/layout-utils"
|
||||
import { mount, render } from "enzyme"
|
||||
@@ -25,10 +25,10 @@ describe("<JsonSchemaForm/>", function(){
|
||||
onChange: () => {},
|
||||
keyName: "",
|
||||
fn: {},
|
||||
schema: {
|
||||
schema: Immutable.fromJS({
|
||||
type: "string",
|
||||
enum: ["one", "two"]
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
let wrapper = render(<JsonSchemaForm {...props}/>)
|
||||
@@ -48,10 +48,10 @@ describe("<JsonSchemaForm/>", function(){
|
||||
onChange: () => {},
|
||||
keyName: "",
|
||||
fn: {},
|
||||
schema: {
|
||||
schema: Immutable.fromJS({
|
||||
type: "string",
|
||||
enum: ["one", "two"]
|
||||
},
|
||||
}),
|
||||
disabled: true
|
||||
}
|
||||
|
||||
@@ -70,10 +70,10 @@ describe("<JsonSchemaForm/>", function(){
|
||||
keyName: "",
|
||||
fn: {},
|
||||
required: true,
|
||||
schema: {
|
||||
schema: Immutable.fromJS({
|
||||
type: "string",
|
||||
enum: ["one", "two"]
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
let wrapper = render(<JsonSchemaForm {...props}/>)
|
||||
@@ -93,9 +93,9 @@ describe("<JsonSchemaForm/>", function(){
|
||||
onChange: () => {},
|
||||
keyName: "",
|
||||
fn: {},
|
||||
schema: {
|
||||
schema: Immutable.fromJS({
|
||||
type: "boolean"
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
let wrapper = render(<JsonSchemaForm {...props}/>)
|
||||
@@ -116,10 +116,10 @@ describe("<JsonSchemaForm/>", function(){
|
||||
onChange: () => {},
|
||||
keyName: "",
|
||||
fn: {},
|
||||
schema: {
|
||||
schema: Immutable.fromJS({
|
||||
type: "boolean",
|
||||
enum: ["true"]
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
let wrapper = render(<JsonSchemaForm {...props}/>)
|
||||
@@ -139,10 +139,10 @@ describe("<JsonSchemaForm/>", function(){
|
||||
onChange: () => {},
|
||||
keyName: "",
|
||||
fn: {},
|
||||
schema: {
|
||||
schema: Immutable.fromJS({
|
||||
type: "boolean",
|
||||
required: true
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
let wrapper = render(<JsonSchemaForm {...props}/>)
|
||||
@@ -164,10 +164,10 @@ describe("<JsonSchemaForm/>", function(){
|
||||
keyName: "",
|
||||
fn: {},
|
||||
required: true,
|
||||
schema: {
|
||||
schema: Immutable.fromJS({
|
||||
type: "boolean",
|
||||
enum: ["true"]
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
let wrapper = render(<JsonSchemaForm {...props}/>)
|
||||
@@ -191,7 +191,7 @@ describe("<JsonSchemaForm/>", function(){
|
||||
keyName: "",
|
||||
fn: {},
|
||||
errors: List(),
|
||||
schema: {
|
||||
schema: Immutable.fromJS({
|
||||
type: "object",
|
||||
properties: {
|
||||
id: {
|
||||
@@ -199,7 +199,7 @@ describe("<JsonSchemaForm/>", function(){
|
||||
example: "abc123"
|
||||
}
|
||||
}
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
let wrapper = mount(<JsonSchemaForm {...props}/>)
|
||||
@@ -219,9 +219,9 @@ describe("<JsonSchemaForm/>", function(){
|
||||
onChange: () => {},
|
||||
keyName: "",
|
||||
fn: {},
|
||||
schema: {
|
||||
schema: Immutable.fromJS({
|
||||
type: "NotARealType"
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
@@ -240,10 +240,10 @@ describe("<JsonSchemaForm/>", function(){
|
||||
onChange: () => {},
|
||||
keyName: "",
|
||||
fn: {},
|
||||
schema: {
|
||||
schema: Immutable.fromJS({
|
||||
type: "NotARealType",
|
||||
format: "NotARealFormat"
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
|
||||
|
||||
Reference in New Issue
Block a user