Run tests against all codegen instead of individual ones (#1255)

* run tests against all codegens instead of individual ones

* table testing

* fixture is no longer needed

Co-authored-by: Qing Ye <ye.qing@go-jek.com>
This commit is contained in:
YE Qing
2020-10-09 16:34:12 +08:00
committed by GitHub
parent 5f5589f1f1
commit 1afd0381c1
6 changed files with 957 additions and 190 deletions

View File

@@ -0,0 +1,91 @@
import { codegens } from "../codegen"
const TEST_URL = "https://httpbin.org"
const TEST_PATH_NAME = "/path/to"
const TEST_QUERY_STRING = "?a=b"
const TEST_HTTP_USER = "mockUser"
const TEST_HTTP_PASSWORD = "mockPassword"
const TEST_BEARER_TOKEN = "abcdefghijklmn"
const TEST_RAW_REQUEST_BODY = "foo=bar&baz=qux"
const TEST_RAW_PARAMS_JSON = '{"foo": "bar", "baz": "qux"}'
const TEST_RAW_PARAMS_XML = `<?xml version=\'1.0\' encoding=\'utf-8\'?>
<xml>
<element foo="bar"></element>
</xml>`
const TEST_HEADERS = [
{ key: "h1", value: "h1v" },
{ key: "h2", value: "h2v" },
]
codegens.forEach((codegen) => {
describe(`generate request for ${codegen.name}`, () => {
const testCases = [
[
"generate GET request",
{
url: TEST_URL,
pathName: TEST_PATH_NAME,
queryString: TEST_QUERY_STRING,
auth: "Basic Auth",
httpUser: TEST_HTTP_USER,
httpPassword: TEST_HTTP_PASSWORD,
method: "GET",
rawInput: false,
rawParams: "",
rawRequestBody: "",
headers: TEST_HEADERS,
},
],
[
"generate POST request for JSON",
{
url: TEST_URL,
pathName: TEST_PATH_NAME,
queryString: TEST_QUERY_STRING,
auth: "Bearer Token",
bearerToken: TEST_BEARER_TOKEN,
method: "POST",
rawInput: true,
rawParams: TEST_RAW_PARAMS_JSON,
rawRequestBody: "",
contentType: "application/json",
headers: TEST_HEADERS,
},
],
[
"generate POST request for XML",
{
url: TEST_URL,
pathName: TEST_PATH_NAME,
queryString: TEST_QUERY_STRING,
auth: "OAuth 2.0",
bearerToken: TEST_BEARER_TOKEN,
method: "POST",
rawInput: true,
rawParams: TEST_RAW_PARAMS_XML,
rawRequestBody: "",
contentType: "application/xml",
headers: TEST_HEADERS,
},
],
[
"generate PUT request for www-form-urlencoded",
{
url: TEST_URL,
pathName: TEST_PATH_NAME,
queryString: TEST_QUERY_STRING,
method: "PUT",
rawInput: false,
rawRequestBody: TEST_RAW_REQUEST_BODY,
contentType: "application/x-www-form-urlencoded",
headers: [],
},
],
]
test.each(testCases)("%s", (_, context) => {
const result = codegen.generator(context)
expect(result).toMatchSnapshot()
})
})
})