aboutsummaryrefslogtreecommitdiffstats
path: root/packages/sra-report/test/test_runner.ts
diff options
context:
space:
mode:
Diffstat (limited to 'packages/sra-report/test/test_runner.ts')
-rw-r--r--packages/sra-report/test/test_runner.ts143
1 files changed, 0 insertions, 143 deletions
diff --git a/packages/sra-report/test/test_runner.ts b/packages/sra-report/test/test_runner.ts
deleted file mode 100644
index 8094018f2..000000000
--- a/packages/sra-report/test/test_runner.ts
+++ /dev/null
@@ -1,143 +0,0 @@
-import * as chai from 'chai';
-import * as chaiAsPromised from 'chai-as-promised';
-import * as dirtyChai from 'dirty-chai';
-import * as _ from 'lodash';
-import 'mocha';
-import {
- NewmanRunExecution,
- NewmanRunExecutionAssertion,
- NewmanRunExecutionAssertionError,
- NewmanRunSummary,
-} from 'newman';
-import * as nock from 'nock';
-
-import * as sraReportCollectionJSON from '../../postman_collections/sra_report.postman_collection.json';
-import { utils } from '../src/utils';
-
-import * as postmanEnvironmentJSON from './environments/postman_environment.json';
-
-chai.config.includeStack = true;
-chai.use(dirtyChai);
-chai.use(chaiAsPromised);
-const expect = chai.expect;
-
-const CONTENT_TYPE_ASSERTION_NAME = 'Has Content-Type header with value application/json';
-const SCHEMA_ASSERTION_NAME = 'Schema is valid';
-const SUCCESS_STATUS = 200;
-const baseNewmanRunOptions = {
- collection: sraReportCollectionJSON,
- environment: postmanEnvironmentJSON,
- reporter: {
- cli: {
- noConsole: true,
- },
- },
-};
-
-export const testRunner = {
- runContentTypeTests(
- nockInterceptor: nock.Interceptor,
- postmanCollectionFolderName: string,
- postmanCollectionRequestName: string,
- ): void {
- const newmanRunOptions = {
- ...baseNewmanRunOptions,
- folder: postmanCollectionFolderName,
- };
- describe(CONTENT_TYPE_ASSERTION_NAME, () => {
- it('fails when there are no headers', async () => {
- nockInterceptor.reply(SUCCESS_STATUS, {});
- const summary = await utils.newmanRunAsync(newmanRunOptions);
- const error = findAssertionErrorIfExists(
- summary,
- postmanCollectionRequestName,
- CONTENT_TYPE_ASSERTION_NAME,
- );
- const errorMessage = _.get(error, 'message');
- expect(error).to.not.be.undefined();
- expect(errorMessage).to.equal(`expected response to have header with key 'Content-Type'`);
- });
- it('fails when Content-Type header exists but not with value application/json', async () => {
- const headers = {
- 'Content-Type': 'text/html',
- };
- nockInterceptor.reply(SUCCESS_STATUS, {}, headers);
- const summary = await utils.newmanRunAsync(newmanRunOptions);
- const error = findAssertionErrorIfExists(
- summary,
- postmanCollectionRequestName,
- CONTENT_TYPE_ASSERTION_NAME,
- );
- const errorMessage = _.get(error, 'message');
- expect(error).to.not.be.undefined();
- expect(errorMessage).to.equal(`expected 'text/html' to include 'application/json'`);
- });
- it('passes when Content-Type header exists with value application/json', async () => {
- const headers = {
- 'Content-Type': 'charset=utf-8; application/json',
- };
- nockInterceptor.reply(SUCCESS_STATUS, {}, headers);
- const summary = await utils.newmanRunAsync(newmanRunOptions);
- const error = findAssertionErrorIfExists(
- summary,
- postmanCollectionRequestName,
- CONTENT_TYPE_ASSERTION_NAME,
- );
- expect(error).to.be.undefined();
- });
- });
- },
- runSchemaTests(
- nockInterceptor: nock.Interceptor,
- postmanCollectionFolderName: string,
- postmanCollectionRequestName: string,
- malformedJson: object,
- correctJson: object,
- ): void {
- const newmanRunOptions = {
- ...baseNewmanRunOptions,
- folder: postmanCollectionFolderName,
- };
- describe(SCHEMA_ASSERTION_NAME, () => {
- it('fails when schema is invalid', async () => {
- nockInterceptor.reply(SUCCESS_STATUS, malformedJson);
- const summary = await utils.newmanRunAsync(newmanRunOptions);
- const error = findAssertionErrorIfExists(summary, postmanCollectionRequestName, SCHEMA_ASSERTION_NAME);
- const errorMessage = _.get(error, 'message');
- expect(error).to.not.be.undefined();
- expect(errorMessage).to.equal('expected false to be true');
- });
- it('passes when schema is valid', async () => {
- nockInterceptor.reply(SUCCESS_STATUS, correctJson);
- const summary = await utils.newmanRunAsync(newmanRunOptions);
- const error = findAssertionErrorIfExists(summary, postmanCollectionRequestName, SCHEMA_ASSERTION_NAME);
- expect(error).to.be.undefined();
- });
- });
- },
-};
-
-function findAssertionErrorIfExists(
- summary: NewmanRunSummary,
- postmanCollectionRequestName: string,
- postmanCollectionAssertionName: string,
-): NewmanRunExecutionAssertionError | undefined {
- const matchingExecutionIfExists = _.find(summary.run.executions, (execution: NewmanRunExecution) => {
- return execution.item.name === postmanCollectionRequestName;
- });
- if (_.isUndefined(matchingExecutionIfExists)) {
- return undefined;
- }
- const matchingAssertionIfExists = _.find(
- matchingExecutionIfExists.assertions,
- (assertion: NewmanRunExecutionAssertion) => {
- return assertion.assertion === postmanCollectionAssertionName;
- },
- );
- if (_.isUndefined(matchingAssertionIfExists)) {
- return undefined;
- } else {
- const error = matchingAssertionIfExists.error;
- return error;
- }
-}