From 8c607db989dff6c4d3f56f6ab9d3a8236a419da5 Mon Sep 17 00:00:00 2001 From: Abhijit Kane Date: Thu, 19 Dec 2019 10:08:33 +0530 Subject: [PATCH] Moving validation fixtures to a git directory --- test/data/validationData/history_obj.json | 85 +++++ .../spec-to-validate-against.json | 315 ++++++++++++++++++ validator_perf.js | 4 +- 3 files changed, 402 insertions(+), 2 deletions(-) create mode 100644 test/data/validationData/history_obj.json create mode 100644 test/data/validationData/spec-to-validate-against.json diff --git a/test/data/validationData/history_obj.json b/test/data/validationData/history_obj.json new file mode 100644 index 0000000..2047635 --- /dev/null +++ b/test/data/validationData/history_obj.json @@ -0,0 +1,85 @@ +[ + { + "id": "r1", + "request": { + "url": "https://domain.com/petsa/hello", + "method": "GET", + "header": [ + { + "key": "limit", + "value": "3" + }, + { + "key": "limit_2", + "value": "3f" + } + ], + "body": null + }, + "response": [ + { + "id": "r1s1", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\"name\": \"pig\"}", + "code": 200 + }, + { + "id": "r1s2", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\"name\": \"pig\"}", + "code": 403 + } + ] + }, + { + "id": "r2", + "request": { + "url": "https://domain.com/petsa/4", + "method": "GET", + "header": [ + { + "key": "limit", + "value": "3" + } + ], + "body": { + "mode": "raw", + "raw": "{\"name\": \"dog\"}" + } + }, + "response": [ + { + "id": "r2s1", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\"name\": \"dog\"}", + "code": 200 + }, + { + "id": "r2s2", + "header": [ + { + "key": "Content-Type", + "value": "application/json" + } + ], + "body": "{\"name\": \"dog\"}", + "code": 403 + } + ] + } +] diff --git a/test/data/validationData/spec-to-validate-against.json b/test/data/validationData/spec-to-validate-against.json new file mode 100644 index 0000000..b18a992 --- /dev/null +++ b/test/data/validationData/spec-to-validate-against.json @@ -0,0 +1,315 @@ +{ + "openapi": "3.0.0", + "info": { + "version": "1.0.0", + "title": "Swagger Petstore", + "license": { + "name": "MIT" + } + }, + "servers": [ + { + "url": "http://petstore.swagger.io/v1" + } + ], + "paths": { + "/petsaa/{a}": { + "get": { + "summary": "List all pets A", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "age": { + "type": "integer", + "format": "int32", + "minimum": 0 + } + } + } + } + }, + "required": false + }, + "parameters": [ + { + "name": "limit", + "in": "header", + "description": "How many items to return at one time (max 100)", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isItCooper", + "in": "header", + "description": "How many items to return at one time (max 100)", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "An paged array of pets", + "headers": { + "x-next": { + "description": "A link to the next page of responses", + "schema": { + "type": "string" + }, + "required": true + }, + "Content-Type": { + "description": "response content type", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pets" + } + } + } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + } + }, + "parameters": [ + { + "name": "a", + "in": "path", + "required": true, + "description": "The id of the pet to retrieve", + "schema": { + "type": "integer" + } + }, + { + "name": "limit_2", + "in": "header", + "description": "How many items to return at one time (max 100)", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ] + }, + "/petsca/{b}": { + "get": { + "summary": "List all pets B", + "requestBody": { + "content": { + "application/json": { + "schema": { + "type": "object", + "required": [ + "name" + ], + "properties": { + "name": { + "type": "string" + }, + "age": { + "type": "integer", + "format": "int32", + "minimum": 0 + } + } + } + } + }, + "required": false + }, + "parameters": [ + { + "name": "limit", + "in": "header", + "description": "How many items to return at one time (max 100)", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + }, + { + "name": "isItCooper", + "in": "header", + "description": "How many items to return at one time (max 100)", + "required": true, + "schema": { + "type": "string" + } + } + ], + "responses": { + "200": { + "description": "An paged array of pets", + "headers": { + "x-next": { + "description": "A link to the next page of responses", + "schema": { + "type": "string" + } + }, + "Content-Type": { + "description": "response content type", + "schema": { + "type": "string" + } + } + }, + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pets" + } + } + } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + } + }, + "parameters": [ + { + "name": "a", + "in": "path", + "required": true, + "description": "The id of the pet to retrieve", + "schema": { + "type": "string" + } + }, + { + "name": "limit_2", + "in": "header", + "description": "How many items to return at one time (max 100)", + "required": true, + "schema": { + "type": "integer", + "format": "int32" + } + } + ] + }, + "/pebts/{petId}": { + "get": { + "summary": "Info for a specific pet", + "operationId": "showPetById", + "tags": [ + "pets" + ], + "parameters": [ + { + "name": "petId", + "in": "path", + "required": true, + "description": "The id of the pet to retrieve", + "schema": { + "type": "boolean" + } + } + ], + "responses": { + "200": { + "description": "Expected response to a valid request", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Pet" + } + } + } + }, + "default": { + "description": "unexpected error", + "content": { + "application/json": { + "schema": { + "$ref": "#/components/schemas/Error" + } + } + } + } + } + } + } + }, + "components": { + "schemas": { + "Pet": { + "required": [ + "id", + "name" + ], + "properties": { + "id": { + "type": "integer", + "format": "int64" + }, + "name": { + "type": "string" + }, + "tag": { + "type": "string" + } + } + }, + "Pets": { + "type": "array", + "items": { + "$ref": "#/components/schemas/Pet" + } + }, + "Error": { + "required": [ + "code", + "message" + ], + "properties": { + "code": { + "type": "integer", + "format": "int32" + }, + "message": { + "type": "string" + } + } + } + } + } +} diff --git a/validator_perf.js b/validator_perf.js index 75d8ea6..1480857 100644 --- a/validator_perf.js +++ b/validator_perf.js @@ -3,8 +3,8 @@ var Converter = require('./index.js'), fs = require('fs'), path = require('path'), - VALID_OPENAPI_PATH = './test/data/.temp/specs/spec-to-validate-against.json', - HISTORY_PATH = './test/data/.temp/specs/history_obj.json'; + VALID_OPENAPI_PATH = './test/data/validationData/spec-to-validate-against.json', + HISTORY_PATH = './test/data/validationData/history_obj.json'; var openapi = JSON.parse(fs.readFileSync(path.join(__dirname, VALID_OPENAPI_PATH), 'utf8')), historyRequest = JSON.parse(fs.readFileSync(path.join(__dirname, HISTORY_PATH), 'utf8'));