Skip to content

Commit

Permalink
test: add petstore test
Browse files Browse the repository at this point in the history
  • Loading branch information
cdimascio committed Dec 19, 2020
1 parent 816b002 commit 22db511
Showing 1 changed file with 206 additions and 0 deletions.
206 changes: 206 additions & 0 deletions test/petstore.spec.ts
Original file line number Diff line number Diff line change
@@ -0,0 +1,206 @@
import * as path from 'path';
import * as request from 'supertest';
import { createApp } from './common/app';

describe('petstore', () => {
let app = null;

before(async () => {
// set up express app
app = await createApp(
{
apiSpec: {
openapi: '3.0.0',
info: {
version: '1.0.0',
title: 'Swagger Petstore',
license: {
name: 'MIT',
},
},
servers: [
{
url: 'http://petstore.swagger.io/v1',
},
],
paths: {
'/pets': {
get: {
summary: 'List all pets',
operationId: 'listPets',
tags: ['pets'],
parameters: [
{
name: 'limit',
in: 'query',
description:
'How many items to return at one time (max 100)',
required: false,
schema: {
type: 'integer',
format: 'int32',
},
},
],
responses: {
'200': {
description: 'A paged array of pets',
headers: {
'x-next': {
description: 'A link to the next page of responses',
schema: {
type: 'string',
},
},
},
content: {
'application/json': {
schema: {
$ref: '#/components/schemas/Pets',
},
},
},
},
default: {
description: 'unexpected error',
content: {
'application/json': {
schema: {
$ref: '#/components/schemas/Error',
},
},
},
},
},
},
post: {
summary: 'Create a pet',
operationId: 'createPets',
tags: ['pets'],
responses: {
'201': {
description: 'Null response',
},
default: {
description: 'unexpected error',
content: {
'application/json': {
schema: {
$ref: '#/components/schemas/Error',
},
},
},
},
},
},
},
'/pets/{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: 'string',
},
},
],
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: {
type: 'object',
required: ['id', 'name'],
properties: {
id: {
type: 'integer',
format: 'int64',
},
name: {
type: 'string',
},
tag: {
type: 'string',
},
},
},
Pets: {
type: 'array',
items: {
$ref: '#/components/schemas/Pet',
},
},
Error: {
type: 'object',
required: ['code', 'message'],
properties: {
code: {
type: 'integer',
format: 'int32',
},
message: {
type: 'string',
},
},
},
},
},
},
// validateResponses: true,
},
3001,
(app) => {
app.get('/v1/pets', (req, res) => {
res.json([
{
id: 1,
name: 'sparky',
tag: 'test',
},
]);
});
},
false,
);
return app;
});

after(() => {
app.server.close();
});

it('should return 200', async () =>
request(app)
.get(`${app.basePath}/pets`)
.expect(200)
.then((r) => console.log(r.body)));
});

0 comments on commit 22db511

Please sign in to comment.