feat: request snippets plugin (#6910)
This commit is contained in:
@@ -208,7 +208,7 @@ function RequestBodyPrimitiveTestCases({
|
||||
// Assert on the curl body
|
||||
// TODO: use an interceptor instead of curl
|
||||
.get(".curl")
|
||||
.contains(`-d "${exampleA.serializedValue || exampleA.value}"`)
|
||||
.contains(`-d '${exampleA.serializedValue || exampleA.value}'`)
|
||||
})
|
||||
|
||||
it("should set default static and Try-It-Out values based on choosing the second member in static mode", () => {
|
||||
@@ -234,7 +234,7 @@ function RequestBodyPrimitiveTestCases({
|
||||
// Assert on the request URL
|
||||
// TODO: use an interceptor instead of curl
|
||||
.get(".curl")
|
||||
.contains(`-d "${exampleB.serializedValue || exampleB.value}"`)
|
||||
.contains(`-d '${exampleB.serializedValue || exampleB.value}'`)
|
||||
})
|
||||
|
||||
it("should set default static and Try-It-Out values based on choosing the second member in Try-It-Out mode", () => {
|
||||
@@ -257,7 +257,7 @@ function RequestBodyPrimitiveTestCases({
|
||||
// Assert on the request URL
|
||||
// TODO: use an interceptor instead of curl
|
||||
.get(".curl")
|
||||
.contains(`-d "${exampleB.serializedValue || exampleB.value}"`)
|
||||
.contains(`-d '${exampleB.serializedValue || exampleB.value}'`)
|
||||
// Switch to static docs
|
||||
.get(".try-out__btn")
|
||||
.click()
|
||||
@@ -323,7 +323,7 @@ function RequestBodyPrimitiveTestCases({
|
||||
// Assert on the request URL
|
||||
// TODO: use an interceptor instead of curl
|
||||
.get(".curl")
|
||||
.contains(`-d "${exampleB.serializedValue || exampleB.value}"`)
|
||||
.contains(`-d '${exampleB.serializedValue || exampleB.value}'`)
|
||||
})
|
||||
|
||||
it("should use the first example for the media type when changing the media type without prior interactions with the value", () => {
|
||||
@@ -349,7 +349,7 @@ function RequestBodyPrimitiveTestCases({
|
||||
// Assert on the request URL
|
||||
// TODO: use an interceptor instead of curl
|
||||
.get(".curl")
|
||||
.contains(`-d "${exampleA.serializedValue || exampleA.value}"`)
|
||||
.contains(`-d '${exampleA.serializedValue || exampleA.value}'`)
|
||||
})
|
||||
|
||||
it("static mode toggling: mediaType -> example -> mediaType -> example", () => {
|
||||
@@ -489,7 +489,7 @@ function RequestBodyPrimitiveTestCases({
|
||||
// TODO: use an interceptor instead of curl
|
||||
.get(".curl")
|
||||
.contains(
|
||||
`-d "${customUserInputExpectedCurlSubstring || customUserInput}"`
|
||||
`-d '${customUserInputExpectedCurlSubstring || customUserInput}'`
|
||||
)
|
||||
|
||||
// Choose exampleB
|
||||
@@ -508,7 +508,7 @@ function RequestBodyPrimitiveTestCases({
|
||||
// Assert on the curl body
|
||||
// TODO: use an interceptor instead of curl
|
||||
.get(".curl")
|
||||
.contains(`-d "${exampleB.serializedValue || exampleB.value}"`)
|
||||
.contains(`-d '${exampleB.serializedValue || exampleB.value}'`)
|
||||
|
||||
// Ensure the modified value is still accessible
|
||||
.get(".opblock-section-request-body .examples-select > select")
|
||||
@@ -530,7 +530,7 @@ function RequestBodyPrimitiveTestCases({
|
||||
// Assert on the curl body
|
||||
// TODO: use an interceptor instead of curl
|
||||
.get(".curl")
|
||||
.contains(`-d "${exampleB.serializedValue || exampleB.value}"`)
|
||||
.contains(`-d '${exampleB.serializedValue || exampleB.value}'`)
|
||||
|
||||
// Ensure the modified value is still accessible
|
||||
.get(".opblock-section-request-body .examples-select > select")
|
||||
@@ -552,7 +552,7 @@ function RequestBodyPrimitiveTestCases({
|
||||
// Assert on the curl body
|
||||
// TODO: use an interceptor instead of curl
|
||||
.get(".curl")
|
||||
.contains(`-d "${exampleA.serializedValue || exampleA.value}"`)
|
||||
.contains(`-d '${exampleA.serializedValue || exampleA.value}'`)
|
||||
|
||||
// Ensure the modified value is still the same value
|
||||
.get(".opblock-section-request-body .examples-select > select")
|
||||
@@ -571,7 +571,7 @@ function RequestBodyPrimitiveTestCases({
|
||||
// TODO: use an interceptor instead of curl
|
||||
.get(".curl")
|
||||
.contains(
|
||||
`-d "${customUserInputExpectedCurlSubstring || customUserInput}"`
|
||||
`-d '${customUserInputExpectedCurlSubstring || customUserInput}'`
|
||||
)
|
||||
})
|
||||
|
||||
|
||||
@@ -2,7 +2,7 @@
|
||||
* @prettier
|
||||
*/
|
||||
|
||||
const {
|
||||
const {
|
||||
ParameterPrimitiveTestCases,
|
||||
RequestBodyPrimitiveTestCases,
|
||||
ResponsePrimitiveTestCases,
|
||||
@@ -256,7 +256,7 @@ describe("OpenAPI 3.0 Multiple Examples - core features", () => {
|
||||
.get("#operations-default-post_Array")
|
||||
.click()
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
.then((inputs) => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"a",
|
||||
"b",
|
||||
@@ -276,7 +276,7 @@ describe("OpenAPI 3.0 Multiple Examples - core features", () => {
|
||||
.get(".parameters-col_description .examples-select > select")
|
||||
.select("ArrayExampleB")
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
.then((inputs) => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"1",
|
||||
"2",
|
||||
@@ -317,7 +317,7 @@ describe("OpenAPI 3.0 Multiple Examples - core features", () => {
|
||||
.type("5")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
.then((inputs) => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"1",
|
||||
"2",
|
||||
@@ -351,7 +351,7 @@ describe("OpenAPI 3.0 Multiple Examples - core features", () => {
|
||||
.select("ArrayExampleB")
|
||||
// Assert against the input fields
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
.then((inputs) => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"1",
|
||||
"2",
|
||||
@@ -367,7 +367,7 @@ describe("OpenAPI 3.0 Multiple Examples - core features", () => {
|
||||
.select("__MODIFIED__VALUE__")
|
||||
// Assert that our modified value is back
|
||||
.get(".json-schema-form-item > input")
|
||||
.then(inputs => {
|
||||
.then((inputs) => {
|
||||
expect(inputs.map((i, el) => el.value).toArray()).to.deep.equal([
|
||||
"1",
|
||||
"2",
|
||||
@@ -566,41 +566,43 @@ describe("OpenAPI 3.0 Multiple Examples - core features", () => {
|
||||
})
|
||||
})
|
||||
describe("in a Request Body", () => {
|
||||
const exampleA = JSON.stringify(
|
||||
{
|
||||
firstName: "Kyle",
|
||||
lastName: "Shockey",
|
||||
email: "kyle.shockey@smartbear.com",
|
||||
},
|
||||
null,
|
||||
2
|
||||
)
|
||||
const exampleB = JSON.stringify(
|
||||
{
|
||||
name: "Abbey",
|
||||
type: "kitten",
|
||||
color: "calico",
|
||||
gender: "female",
|
||||
age: "11 weeks",
|
||||
},
|
||||
null,
|
||||
2
|
||||
)
|
||||
RequestBodyPrimitiveTestCases({
|
||||
operationDomId: "#operations-default-post_Object",
|
||||
primaryMediaType: "application/json",
|
||||
// ↓ not a typo, Cypress requires escaping { when using `cy.type`
|
||||
customUserInput: `{{} "openapiIsCool": true }`,
|
||||
customExpectedUrlSubstring: "?openapiIsCool=true",
|
||||
customUserInputExpectedCurlSubstring: `{\\"openapiIsCool\\":true}`,
|
||||
customUserInputExpectedCurlSubstring: `{ "openapiIsCool": true }`,
|
||||
exampleA: {
|
||||
key: "ObjectExampleA",
|
||||
serializedValue: `{\\"firstName\\":\\"Kyle\\",\\"lastName\\":\\"Shockey\\",\\"email\\":\\"kyle.shockey@smartbear.com\\"}`,
|
||||
value: JSON.stringify(
|
||||
{
|
||||
firstName: "Kyle",
|
||||
lastName: "Shockey",
|
||||
email: "kyle.shockey@smartbear.com",
|
||||
},
|
||||
null,
|
||||
2
|
||||
),
|
||||
serializedValue: exampleA,
|
||||
value: exampleA,
|
||||
summary: "A user's contact info",
|
||||
},
|
||||
exampleB: {
|
||||
key: "ObjectExampleB",
|
||||
serializedValue: `{\\"name\\":\\"Abbey\\",\\"type\\":\\"kitten\\",\\"color\\":\\"calico\\",\\"gender\\":\\"female\\",\\"age\\":\\"11 weeks\\"}`,
|
||||
value: JSON.stringify(
|
||||
{
|
||||
name: "Abbey",
|
||||
type: "kitten",
|
||||
color: "calico",
|
||||
gender: "female",
|
||||
age: "11 weeks",
|
||||
},
|
||||
null,
|
||||
2
|
||||
),
|
||||
serializedValue: exampleB,
|
||||
value: exampleB,
|
||||
summary: "A wonderful kitten's info",
|
||||
},
|
||||
})
|
||||
|
||||
@@ -95,7 +95,7 @@ describe("OpenAPI 3.0 Validation for Required Request Body and Request Body Fiel
|
||||
.get(".responses-wrapper .curl-command")
|
||||
.should("exist")
|
||||
.get(".responses-wrapper .curl-command span")
|
||||
.should("contains.text", "\" \"")
|
||||
.should("contains.text", "' '")
|
||||
})
|
||||
})
|
||||
|
||||
|
||||
@@ -3,9 +3,9 @@ import React from "react"
|
||||
import { fromJSOrdered } from "core/utils"
|
||||
import expect, { createSpy } from "expect"
|
||||
import { shallow } from "enzyme"
|
||||
import Curl from "components/curl"
|
||||
import LiveResponse from "components/live-response"
|
||||
import ResponseBody from "components/response-body"
|
||||
import { RequestSnippets } from "core/plugins/request-snippets/request-snippets"
|
||||
|
||||
describe("<LiveResponse/>", function () {
|
||||
let request = fromJSOrdered({
|
||||
@@ -36,7 +36,7 @@ describe("<LiveResponse/>", function () {
|
||||
]
|
||||
|
||||
tests.forEach(function (test) {
|
||||
it("passes " + test.expected.request + " to Curl when showMutatedRequest = " + test.showMutatedRequest, function () {
|
||||
it("passes " + test.expected.request + " to RequestSnippets when showMutatedRequest = " + test.showMutatedRequest, function () {
|
||||
|
||||
// Given
|
||||
|
||||
@@ -54,7 +54,7 @@ describe("<LiveResponse/>", function () {
|
||||
let requestForSpy = createSpy().andReturn(request)
|
||||
|
||||
let components = {
|
||||
curl: Curl,
|
||||
RequestSnippets: RequestSnippets,
|
||||
responseBody: ResponseBody
|
||||
}
|
||||
|
||||
@@ -69,7 +69,7 @@ describe("<LiveResponse/>", function () {
|
||||
return components[c]
|
||||
},
|
||||
displayRequestDuration: true,
|
||||
getConfigs: () => ({ showMutatedRequest: test.showMutatedRequest })
|
||||
getConfigs: () => ({ showMutatedRequest: test.showMutatedRequest, requestSnippetsEnabled: true })
|
||||
}
|
||||
|
||||
// When
|
||||
@@ -79,9 +79,9 @@ describe("<LiveResponse/>", function () {
|
||||
expect(mutatedRequestForSpy.calls.length).toEqual(test.expected.mutatedRequestForCalls)
|
||||
expect(requestForSpy.calls.length).toEqual(test.expected.requestForCalls)
|
||||
|
||||
const curl = wrapper.find(Curl)
|
||||
expect(curl.length).toEqual(1)
|
||||
expect(curl.props().request).toBe(requests[test.expected.request])
|
||||
const snippets = wrapper.find("RequestSnippets")
|
||||
expect(snippets.length).toEqual(1)
|
||||
expect(snippets.props().request).toBe(requests[test.expected.request])
|
||||
|
||||
const expectedUrl = requests[test.expected.request].get("url")
|
||||
expect(wrapper.find("div.request-url pre.microlight").text()).toEqual(expectedUrl)
|
||||
|
||||
@@ -1,18 +1,19 @@
|
||||
import Im from "immutable"
|
||||
import curl from "core/curlify"
|
||||
import { requestSnippetGenerator_curl_bash as curl } from "core/plugins/request-snippets/fn.js"
|
||||
import win from "core/window"
|
||||
|
||||
describe("curlify", function () {
|
||||
|
||||
it("prints a curl statement with custom content-type", function () {
|
||||
const body = JSON.stringify({
|
||||
id: 0,
|
||||
name: "doggie",
|
||||
status: "available"
|
||||
}, null, 2)
|
||||
let req = {
|
||||
url: "http://example.com",
|
||||
method: "POST",
|
||||
body: {
|
||||
id: 0,
|
||||
name: "doggie",
|
||||
status: "available"
|
||||
},
|
||||
body,
|
||||
headers: {
|
||||
Accept: "application/json",
|
||||
"content-type": "application/json"
|
||||
@@ -21,7 +22,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -H \"Accept: application/json\" -H \"content-type: application/json\" -d {\"id\":0,\"name\":\"doggie\",\"status\":\"available\"}")
|
||||
expect(curlified).toEqual(`curl -X 'POST' \\\n 'http://example.com' \\\n -H 'Accept: application/json' \\\n -H 'content-type: application/json' \\\n -d '${body}'`)
|
||||
})
|
||||
|
||||
it("does add a empty data param if no request body given", function () {
|
||||
@@ -32,7 +33,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -d \"\"")
|
||||
expect(curlified).toEqual("curl -X 'POST' \\\n 'http://example.com' \\\n -d ''")
|
||||
})
|
||||
|
||||
it("does not change the case of header in curl", function () {
|
||||
@@ -46,7 +47,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -H \"conTenT Type: application/Moar\" -d \"\"")
|
||||
expect(curlified).toEqual("curl -X 'POST' \\\n 'http://example.com' \\\n -H 'conTenT Type: application/Moar' \\\n -d ''")
|
||||
})
|
||||
|
||||
it("prints a curl statement with an array of query params", function () {
|
||||
@@ -57,7 +58,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X GET \"http://swaggerhub.com/v1/one?name=john|smith\"")
|
||||
expect(curlified).toEqual("curl -X 'GET' \\\n 'http://swaggerhub.com/v1/one?name=john|smith'")
|
||||
})
|
||||
|
||||
it("prints a curl statement with an array of query params and auth", function () {
|
||||
@@ -71,24 +72,25 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X GET \"http://swaggerhub.com/v1/one?name=john|smith\" -H \"authorization: Basic Zm9vOmJhcg==\"")
|
||||
expect(curlified).toEqual("curl -X 'GET' \\\n 'http://swaggerhub.com/v1/one?name=john|smith' \\\n -H 'authorization: Basic Zm9vOmJhcg=='")
|
||||
})
|
||||
|
||||
it("prints a curl statement with html", function () {
|
||||
const body = {
|
||||
description: "<b>Test</b>"
|
||||
}
|
||||
let req = {
|
||||
url: "http://swaggerhub.com/v1/one?name=john|smith",
|
||||
method: "GET",
|
||||
headers: {
|
||||
accept: "application/json"
|
||||
},
|
||||
body: {
|
||||
description: "<b>Test</b>"
|
||||
}
|
||||
body
|
||||
}
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X GET \"http://swaggerhub.com/v1/one?name=john|smith\" -H \"accept: application/json\" -d {\"description\":\"<b>Test</b>\"}")
|
||||
expect(curlified).toEqual(`curl -X 'GET' \\\n 'http://swaggerhub.com/v1/one?name=john|smith' \\\n -H 'accept: application/json' \\\n -d '${JSON.stringify(body, null, 2)}'`)
|
||||
})
|
||||
|
||||
it("handles post body with html", function () {
|
||||
@@ -105,7 +107,12 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://swaggerhub.com/v1/one?name=john|smith\" -H \"accept: application/json\" -d {\"description\":\"<b>Test</b>\"}")
|
||||
expect(curlified).toEqual(`curl -X 'POST' \\
|
||||
'http://swaggerhub.com/v1/one?name=john|smith' \\
|
||||
-H 'accept: application/json' \\
|
||||
-d '{
|
||||
"description": "<b>Test</b>"
|
||||
}'`)
|
||||
})
|
||||
|
||||
it("handles post body with special chars", function () {
|
||||
@@ -120,7 +127,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://swaggerhub.com/v1/one?name=john|smith\" -d {\"description\":\"@prefix nif:<http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core#> .@prefix itsrdf: <http://www.w3.org/2005/11/its/rdf#> .\"}")
|
||||
expect(curlified).toEqual("curl -X 'POST' \\\n 'http://swaggerhub.com/v1/one?name=john|smith' \\\n -d '{\n \"description\": \"@prefix nif:<http://persistence.uni-leipzig.org/nlp2rdf/ontologies/nif-core#> .\\n@prefix itsrdf: <http://www.w3.org/2005/11/its/rdf#> .\"\n}'")
|
||||
})
|
||||
|
||||
it("handles delete form with parameters", function () {
|
||||
@@ -134,7 +141,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X DELETE \"http://example.com\" -H \"accept: application/x-www-form-urlencoded\"")
|
||||
expect(curlified).toEqual("curl -X 'DELETE' \\\n 'http://example.com' \\\n -H 'accept: application/x-www-form-urlencoded'")
|
||||
})
|
||||
|
||||
it("should print a curl with formData", function () {
|
||||
@@ -150,7 +157,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -H \"content-type: multipart/form-data\" -F \"id=123\" -F \"name=Sahar\"")
|
||||
expect(curlified).toEqual("curl -X 'POST' \\\n 'http://example.com' \\\n -H 'content-type: multipart/form-data' \\\n -F 'id=123' \\\n -F 'name=Sahar'")
|
||||
})
|
||||
|
||||
it("should print a curl with formData that extracts array representation with hashIdx", function () {
|
||||
@@ -170,7 +177,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -H \"content-type: multipart/form-data\" -F \"id=123\" -F \"fruits[]=apple\" -F \"fruits[]=banana\" -F \"fruits[]=grape\"")
|
||||
expect(curlified).toEqual("curl -X 'POST' \\\n 'http://example.com' \\\n -H 'content-type: multipart/form-data' \\\n -F 'id=123' \\\n -F 'fruits[]=apple' \\\n -F 'fruits[]=banana' \\\n -F 'fruits[]=grape'")
|
||||
})
|
||||
|
||||
it("should print a curl with formData and file", function () {
|
||||
@@ -190,7 +197,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -H \"content-type: multipart/form-data\" -F \"id=123\" -F \"file=@file.txt;type=text/plain\"")
|
||||
expect(curlified).toEqual("curl -X 'POST' \\\n 'http://example.com' \\\n -H 'content-type: multipart/form-data' \\\n -F 'id=123' \\\n -F 'file=@file.txt;type=text/plain'")
|
||||
})
|
||||
|
||||
it("should print a curl without form data type if type is unknown", function () {
|
||||
@@ -210,7 +217,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -H \"content-type: multipart/form-data\" -F \"id=123\" -F \"file=@file.txt\"")
|
||||
expect(curlified).toEqual("curl -X 'POST' \\\n 'http://example.com' \\\n -H 'content-type: multipart/form-data' \\\n -F 'id=123' \\\n -F 'file=@file.txt'")
|
||||
})
|
||||
|
||||
it("prints a curl post statement from an object", function () {
|
||||
@@ -227,7 +234,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -H \"accept: application/json\" -d {\"id\":10101}")
|
||||
expect(curlified).toEqual("curl -X 'POST' \\\n 'http://example.com' \\\n -H 'accept: application/json' \\\n -d '{\n \"id\": 10101\n}'")
|
||||
})
|
||||
|
||||
it("prints a curl post statement from a string containing a single quote", function () {
|
||||
@@ -242,7 +249,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -H \"accept: application/json\" -d \"{\\\"id\\\":\\\"foo'bar\\\"}\"")
|
||||
expect(curlified).toEqual("curl -X 'POST' \\\n 'http://example.com' \\\n -H 'accept: application/json' \\\n -d '{\"id\":\"foo'\\''bar\"}'")
|
||||
})
|
||||
|
||||
describe("given multiple entries with file", function () {
|
||||
@@ -267,7 +274,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -H \"x-custom-name: multipart/form-data\" -H \"content-type: multipart/form-data\" -F \"id=123\" -F \"file=@file.txt;type=text/plain\"")
|
||||
expect(curlified).toEqual("curl -X 'POST' \\\n 'http://example.com' \\\n -H 'x-custom-name: multipart/form-data' \\\n -H 'content-type: multipart/form-data' \\\n -F 'id=123' \\\n -F 'file=@file.txt;type=text/plain'")
|
||||
})
|
||||
})
|
||||
|
||||
@@ -292,7 +299,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -H \"content-type: multipart/form-data\" -H \"x-custom-name: any-value\" -F \"id=123\" -F \"file=@file.txt;type=text/plain\"")
|
||||
expect(curlified).toEqual("curl -X 'POST' \\\n 'http://example.com' \\\n -H 'content-type: multipart/form-data' \\\n -H 'x-custom-name: any-value' \\\n -F 'id=123' \\\n -F 'file=@file.txt;type=text/plain'")
|
||||
})
|
||||
})
|
||||
})
|
||||
@@ -315,7 +322,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -H \"x-custom-name: multipart/form-data\" -d {\"id\":\"123\",\"file\":{\"name\":\"file.txt\",\"type\":\"text/plain\"}}")
|
||||
expect(curlified).toEqual("curl -X 'POST' \\\n 'http://example.com' \\\n -H 'x-custom-name: multipart/form-data' \\\n -d '{\n \"id\": \"123\",\n \"file\": {\n \"name\": \"file.txt\",\n \"type\": \"text/plain\"\n }\n}'")
|
||||
})
|
||||
|
||||
it("shoud print a proper curl as -d <data>, no file type provided", function () {
|
||||
@@ -335,36 +342,10 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -H \"x-custom-name: multipart/form-data\" -d {\"id\":\"123\",\"file\":{\"name\":\"file.txt\"}}")
|
||||
expect(curlified).toEqual("curl -X 'POST' \\\n 'http://example.com' \\\n -H 'x-custom-name: multipart/form-data' \\\n -d '{\n \"id\": \"123\",\n \"file\": {\n \"name\": \"file.txt\"\n }\n}'")
|
||||
})
|
||||
})
|
||||
|
||||
it("should escape dollar signs in headers and request body", function () {
|
||||
let req = {
|
||||
url: "http://example.com",
|
||||
method: "POST",
|
||||
headers: { "X-DOLLAR": "token/123$" },
|
||||
body: "CREATE ($props)"
|
||||
}
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -H \"X-DOLLAR: token/123\\$\" -d \"CREATE (\\$props)\"")
|
||||
})
|
||||
|
||||
it("should escape multiple dollar signs", function () {
|
||||
let req = {
|
||||
url: "http://example.com",
|
||||
method: "POST",
|
||||
headers: { },
|
||||
body: "RETURN $x + $y"
|
||||
}
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -X POST \"http://example.com\" -d \"RETURN \\$x + \\$y\"")
|
||||
})
|
||||
|
||||
it("should include curlOptions from the request in the curl command", function () {
|
||||
let req = {
|
||||
url: "http://example.com",
|
||||
@@ -375,7 +356,7 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -g -X GET \"http://example.com\" -H \"X-DOLLAR: token/123\\$\"")
|
||||
expect(curlified).toEqual("curl -g -X 'GET' \\\n 'http://example.com' \\\n -H 'X-DOLLAR: token/123$'")
|
||||
})
|
||||
|
||||
it("should include multiple curlOptions from the request in the curl command", function () {
|
||||
@@ -388,6 +369,6 @@ describe("curlify", function () {
|
||||
|
||||
let curlified = curl(Im.fromJS(req))
|
||||
|
||||
expect(curlified).toEqual("curl -g --limit-rate 20k -X GET \"http://example.com\" -H \"X-DOLLAR: token/123\\$\"")
|
||||
expect(curlified).toEqual("curl -g --limit-rate 20k -X 'GET' \\\n 'http://example.com' \\\n -H 'X-DOLLAR: token/123$'")
|
||||
})
|
||||
})
|
||||
|
||||
Reference in New Issue
Block a user