From 891f71c2e5c86c7028003d730e702cf6ce1f251e Mon Sep 17 00:00:00 2001 From: praveendvd Date: Fri, 28 Jan 2022 00:53:20 +0000 Subject: [PATCH 1/5] push --- .../__snapshots__/test-cli-unit.test.js.snap | 337 +++++++++ __test__/__snapshots__/test-cli.test.js.snap | 22 +- __test__/test-cli-unit.test.js | 310 ++++++++ __test__/test-cli.test.js | 28 +- __test__/utils/helperMethods.js | 23 + bin/main.js | 3 + coverage/clover.xml | 38 + coverage/coverage-final.json | 2 + coverage/lcov-report/base.css | 224 ++++++ coverage/lcov-report/block-navigation.js | 87 +++ .../lcov-report/block-navigation.js.html | 346 +++++++++ .../coverage/lcov-report/index.html | 146 ++++ .../coverage/lcov-report/prettify.js.html | 91 +++ .../coverage/lcov-report/sorter.js.html | 673 ++++++++++++++++++ .../lcov-report/collection_updater/index.html | 116 +++ .../collection_updater/index.js.html | 253 +++++++ coverage/lcov-report/favicon.png | Bin 0 -> 540 bytes coverage/lcov-report/index.html | 116 +++ coverage/lcov-report/index.js.html | 268 +++++++ coverage/lcov-report/prettify.css | 1 + coverage/lcov-report/prettify.js | 2 + coverage/lcov-report/sort-arrow-sprite.png | Bin 0 -> 209 bytes coverage/lcov-report/sorter.js | 196 +++++ coverage/lcov.info | 54 ++ index.js | 44 +- new_collection.json | 471 ++++++++++++ package.json | 20 +- 27 files changed, 3825 insertions(+), 46 deletions(-) create mode 100644 __test__/__snapshots__/test-cli-unit.test.js.snap create mode 100644 __test__/test-cli-unit.test.js create mode 100644 __test__/utils/helperMethods.js create mode 100644 bin/main.js create mode 100644 coverage/clover.xml create mode 100644 coverage/coverage-final.json create mode 100644 coverage/lcov-report/base.css create mode 100644 coverage/lcov-report/block-navigation.js create mode 100644 coverage/lcov-report/collection_updater/coverage/lcov-report/block-navigation.js.html create mode 100644 coverage/lcov-report/collection_updater/coverage/lcov-report/index.html create mode 100644 coverage/lcov-report/collection_updater/coverage/lcov-report/prettify.js.html create mode 100644 coverage/lcov-report/collection_updater/coverage/lcov-report/sorter.js.html create mode 100644 coverage/lcov-report/collection_updater/index.html create mode 100644 coverage/lcov-report/collection_updater/index.js.html create mode 100644 coverage/lcov-report/favicon.png create mode 100644 coverage/lcov-report/index.html create mode 100644 coverage/lcov-report/index.js.html create mode 100644 coverage/lcov-report/prettify.css create mode 100644 coverage/lcov-report/prettify.js create mode 100644 coverage/lcov-report/sort-arrow-sprite.png create mode 100644 coverage/lcov-report/sorter.js create mode 100644 coverage/lcov.info create mode 100644 new_collection.json diff --git a/__test__/__snapshots__/test-cli-unit.test.js.snap b/__test__/__snapshots__/test-cli-unit.test.js.snap new file mode 100644 index 0000000..f1ee03f --- /dev/null +++ b/__test__/__snapshots__/test-cli-unit.test.js.snap @@ -0,0 +1,337 @@ +// Jest Snapshot v1, https://goo.gl/fbAQLP + +exports[`Validate index.js unit tests Validate cli output messages Should show file not found error if collection doesnt exists 1`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file not found error if collection doesnt exists 2`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file not found error if collection doesnt exists 3`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file not found error if collection doesnt exists 4`] = `"exit"`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file not found error if collection doesnt exists 5`] = ` +[MockFunction] { + "calls": Array [ + Array [], + ], + "results": Array [ + Object { + "type": "throw", + "value": [Error: exit], + }, + ], +} +`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file not found error if collection doesnt exists 6`] = ` +[MockFunction] { + "calls": Array [ + Array [ + "ENOENT: no such file or directory, open 'test/collection/collection.json'", + ], + ], + "results": Array [ + Object { + "type": "return", + "value": undefined, + }, + ], +} +`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file not found error if collection doesnt exists 7`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with custom path 1`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with custom path 2`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with custom path 3`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with custom path 4`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with custom path 5`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with custom path 6`] = ` +[MockFunction] { + "calls": Array [ + Array [ + "File saved to: D:\\\\MyProjects\\\\collection_updater\\\\new_collection.json", + ], + ], + "results": Array [ + Object { + "type": "return", + "value": undefined, + }, + ], +} +`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with default path 1`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with default path 2`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with default path 3`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with default path 4`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with default path 5`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with default path 6`] = ` +[MockFunction] { + "calls": Array [ + Array [ + "File saved to: D:\\\\MyProjects\\\\collection_updater\\\\__test__\\\\collection\\\\new_collection.json", + ], + ], + "results": Array [ + Object { + "type": "return", + "value": undefined, + }, + ], +} +`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if -c argument is missing 1`] = `"exit"`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if -c argument is missing 2`] = ` +[MockFunction] { + "calls": Array [ + Array [ + 1, + ], + ], + "results": Array [ + Object { + "type": "throw", + "value": [Error: exit], + }, + ], +} +`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if -c argument is missing 3`] = ` +[MockFunction] { + "calls": Array [ + Array [ + "Usage: -c \\"root/collection_name.json\\" -r \\"{{Baseurl}}/path1/path2\\" -w +\\"{{Baseurl}}/{{path}}\\" -s \\"root/new_collection_name.json\\" + +Options: + --help Show help [boolean] + --version Show version number [boolean] + -c, --collection_path Path to Collection file [string] [required] + -r, --replace_url_part Replaces only the matching part of the URL + [string] [required] + -w, --with_url_part Replaces the matching part of the URL with provided + value [string] [required] + -s, --save_as path to save new collection + [string] [default: \\"root/new_.json\\"]", + ], + Array [], + Array [ + "Missing required argument: c", + ], + ], + "results": Array [ + Object { + "type": "return", + "value": undefined, + }, + Object { + "type": "return", + "value": undefined, + }, + Object { + "type": "return", + "value": undefined, + }, + ], +} +`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if -c argument is missing 4`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if -r argument is missing 1`] = `"exit"`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if -r argument is missing 2`] = ` +[MockFunction] { + "calls": Array [ + Array [ + 1, + ], + ], + "results": Array [ + Object { + "type": "throw", + "value": [Error: exit], + }, + ], +} +`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if -r argument is missing 3`] = ` +[MockFunction] { + "calls": Array [ + Array [ + "Usage: -c \\"root/collection_name.json\\" -r \\"{{Baseurl}}/path1/path2\\" -w +\\"{{Baseurl}}/{{path}}\\" -s \\"root/new_collection_name.json\\" + +Options: + --help Show help [boolean] + --version Show version number [boolean] + -c, --collection_path Path to Collection file [string] [required] + -r, --replace_url_part Replaces only the matching part of the URL + [string] [required] + -w, --with_url_part Replaces the matching part of the URL with provided + value [string] [required] + -s, --save_as path to save new collection + [string] [default: \\"root/new_.json\\"]", + ], + Array [], + Array [ + "Missing required argument: r", + ], + ], + "results": Array [ + Object { + "type": "return", + "value": undefined, + }, + Object { + "type": "return", + "value": undefined, + }, + Object { + "type": "return", + "value": undefined, + }, + ], +} +`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if -r argument is missing 4`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if -w argument is missing 1`] = `"exit"`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if -w argument is missing 2`] = ` +[MockFunction] { + "calls": Array [ + Array [ + 1, + ], + ], + "results": Array [ + Object { + "type": "throw", + "value": [Error: exit], + }, + ], +} +`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if -w argument is missing 3`] = ` +[MockFunction] { + "calls": Array [ + Array [ + "Usage: -c \\"root/collection_name.json\\" -r \\"{{Baseurl}}/path1/path2\\" -w +\\"{{Baseurl}}/{{path}}\\" -s \\"root/new_collection_name.json\\" + +Options: + --help Show help [boolean] + --version Show version number [boolean] + -c, --collection_path Path to Collection file [string] [required] + -r, --replace_url_part Replaces only the matching part of the URL + [string] [required] + -w, --with_url_part Replaces the matching part of the URL with provided + value [string] [required] + -s, --save_as path to save new collection + [string] [default: \\"root/new_.json\\"]", + ], + Array [], + Array [ + "Missing required argument: w", + ], + ], + "results": Array [ + Object { + "type": "return", + "value": undefined, + }, + Object { + "type": "return", + "value": undefined, + }, + Object { + "type": "return", + "value": undefined, + }, + ], +} +`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if -w argument is missing 4`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if arguments are missing 1`] = `"exit"`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if arguments are missing 2`] = ` +[MockFunction] { + "calls": Array [ + Array [ + 1, + ], + ], + "results": Array [ + Object { + "type": "throw", + "value": [Error: exit], + }, + ], +} +`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if arguments are missing 3`] = ` +[MockFunction] { + "calls": Array [ + Array [ + "Usage: -c \\"root/collection_name.json\\" -r \\"{{Baseurl}}/path1/path2\\" -w +\\"{{Baseurl}}/{{path}}\\" -s \\"root/new_collection_name.json\\" + +Options: + --help Show help [boolean] + --version Show version number [boolean] + -c, --collection_path Path to Collection file [string] [required] + -r, --replace_url_part Replaces only the matching part of the URL + [string] [required] + -w, --with_url_part Replaces the matching part of the URL with provided + value [string] [required] + -s, --save_as path to save new collection + [string] [default: \\"root/new_.json\\"]", + ], + Array [], + Array [ + "Missing required arguments: c, r, w", + ], + ], + "results": Array [ + Object { + "type": "return", + "value": undefined, + }, + Object { + "type": "return", + "value": undefined, + }, + Object { + "type": "return", + "value": undefined, + }, + ], +} +`; + +exports[`Validate index.js unit tests Validate cli output messages Should show help if arguments are missing 4`] = `[MockFunction]`; + +exports[`Validate index.js unit tests Validate cli output messages Should throw error if exception thrown doesnt contain errono 4058 1`] = `"Error: Custom error"`; + +exports[`Validate index.js unit tests Validate cli output messages Should throw error if exception thrown doesnt contain errono property 1`] = `"Error"`; diff --git a/__test__/__snapshots__/test-cli.test.js.snap b/__test__/__snapshots__/test-cli.test.js.snap index e8241af..23d8148 100644 --- a/__test__/__snapshots__/test-cli.test.js.snap +++ b/__test__/__snapshots__/test-cli.test.js.snap @@ -1,13 +1,13 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP -exports[`Validate index.js Validate cli output messages Should show file not found error if collection doesnt exists 1`] = `""`; - -exports[`Validate index.js Validate cli output messages Should show file not found error if collection doesnt exists 2`] = ` +exports[`Validate index.js system test Validate cli output messages Should show file not found error if collection doesnt exists 1`] = ` "ENOENT: no such file or directory, open 'test/collection/collection.json' " `; -exports[`Validate index.js Validate cli output messages Should show help if -c argument is missing 1`] = ` +exports[`Validate index.js system test Validate cli output messages Should show file not found error if collection doesnt exists 2`] = `""`; + +exports[`Validate index.js system test Validate cli output messages Should show help if -c argument is missing 1`] = ` "Usage: -c \\"root/collection_name.json\\" -r \\"{{Baseurl}}/path1/path2\\" -w \\"{{Baseurl}}/{{path}}\\" -s \\"root/new_collection_name.json\\" @@ -22,13 +22,13 @@ Options: -s, --save_as path to save new collection [string] [default: \\"root/new_.json\\"] -Missing required argument: r +Missing required arguments: c, r " `; -exports[`Validate index.js Validate cli output messages Should show help if -c argument is missing 2`] = `""`; +exports[`Validate index.js system test Validate cli output messages Should show help if -c argument is missing 2`] = `""`; -exports[`Validate index.js Validate cli output messages Should show help if -r argument is missing 1`] = ` +exports[`Validate index.js system test Validate cli output messages Should show help if -r argument is missing 1`] = ` "Usage: -c \\"root/collection_name.json\\" -r \\"{{Baseurl}}/path1/path2\\" -w \\"{{Baseurl}}/{{path}}\\" -s \\"root/new_collection_name.json\\" @@ -47,9 +47,9 @@ Missing required argument: r " `; -exports[`Validate index.js Validate cli output messages Should show help if -r argument is missing 2`] = `""`; +exports[`Validate index.js system test Validate cli output messages Should show help if -r argument is missing 2`] = `""`; -exports[`Validate index.js Validate cli output messages Should show help if -w argument is missing 1`] = ` +exports[`Validate index.js system test Validate cli output messages Should show help if -w argument is missing 1`] = ` "Usage: -c \\"root/collection_name.json\\" -r \\"{{Baseurl}}/path1/path2\\" -w \\"{{Baseurl}}/{{path}}\\" -s \\"root/new_collection_name.json\\" @@ -68,9 +68,9 @@ Missing required argument: w " `; -exports[`Validate index.js Validate cli output messages Should show help if -w argument is missing 2`] = `""`; +exports[`Validate index.js system test Validate cli output messages Should show help if -w argument is missing 2`] = `""`; -exports[`Validate index.js Validate cli output messages Should show help if arguments are missing 1`] = ` +exports[`Validate index.js system test Validate cli output messages Should show help if arguments are missing 1`] = ` "Usage: -c \\"root/collection_name.json\\" -r \\"{{Baseurl}}/path1/path2\\" -w \\"{{Baseurl}}/{{path}}\\" -s \\"root/new_collection_name.json\\" diff --git a/__test__/test-cli-unit.test.js b/__test__/test-cli-unit.test.js new file mode 100644 index 0000000..47202b6 --- /dev/null +++ b/__test__/test-cli-unit.test.js @@ -0,0 +1,310 @@ +const exec = require('shelljs').exec, + sdk = require('postman-collection'), + fs = require('fs'), + { resetAndReimportUrlUpdator, CustomError } = require('./utils/helperMethods.js'); + + +let postman_url_updater, + mockProcessExit = jest.spyOn(process, 'exit').mockImplementation(() => { throw new Error("exit"); }), + mockConsoleError = jest.spyOn(console, 'error').mockImplementation(() => { }), + mockConsoleLog = jest.spyOn(console, 'log').mockImplementation(() => { }); + +describe('Validate index.js unit tests', () => { + describe('Validate cli output messages', () => { + + afterEach(() => { + jest.clearAllMocks(); + }); + + afterAll(() => { + jest.restoreAllMocks(); + }) + + it('Should show help if arguments are missing', async () => { + resetAndReimportUrlUpdator({ c: undefined, r: undefined, w: undefined, s: undefined, p: undefined }); + expect(() => { require('../index.js') }).toThrowErrorMatchingSnapshot() + expect(mockProcessExit).toBeCalled(); + expect(mockConsoleError).toBeCalled(); + expect(mockProcessExit).toMatchSnapshot(); + expect(mockConsoleError).toMatchSnapshot(); + expect(mockConsoleLog).not.toBeCalled(); + expect(mockConsoleLog).toMatchSnapshot(); + }); + + it('Should show help if -c argument is missing', async () => { + resetAndReimportUrlUpdator({ c: undefined, r: "{{baseURL}}/{{path}}", w: "new_collection.json", s: undefined, p: undefined }); + expect(() => { require('../index.js') }).toThrowErrorMatchingSnapshot() + expect(mockProcessExit).toBeCalled(); + expect(mockConsoleError).toBeCalled(); + expect(mockProcessExit).toMatchSnapshot(); + expect(mockConsoleError).toMatchSnapshot(); + expect(mockConsoleLog).not.toBeCalled(); + expect(mockConsoleLog).toMatchSnapshot(); + }); + + it('Should show help if -r argument is missing', async () => { + resetAndReimportUrlUpdator({ c: "test/collection/collection.json", r: undefined, w: "new_collection.json", s: undefined, p: undefined }); + expect(() => { require('../index.js') }).toThrowErrorMatchingSnapshot() + expect(mockProcessExit).toBeCalled(); + expect(mockConsoleError).toBeCalled(); + expect(mockProcessExit).toMatchSnapshot(); + expect(mockConsoleError).toMatchSnapshot(); + expect(mockConsoleLog).not.toBeCalled(); + expect(mockConsoleLog).toMatchSnapshot(); + }); + + it('Should show help if -w argument is missing', async () => { + resetAndReimportUrlUpdator({ c: "test/collection/collection.json", r: "{{baseURL}}/{{path}}", w: undefined, s: "new_collection.json", p: undefined }); + expect(() => { require('../index.js') }).toThrowErrorMatchingSnapshot() + expect(mockProcessExit).toBeCalled(); + expect(mockConsoleError).toBeCalled(); + expect(mockProcessExit).toMatchSnapshot(); + expect(mockConsoleError).toMatchSnapshot(); + expect(mockConsoleLog).not.toBeCalled(); + expect(mockConsoleLog).toMatchSnapshot(); + }); + + it('Should show file not found error if collection doesnt exists', async () => { + resetAndReimportUrlUpdator({ c: "test/collection/collection.json", r: "{{baseURL}}/{{path}}", w: "{{baseURL}}/{{path}}", s: "new_collection.json", p: undefined }); + postman_url_updater = require('../index.js') + expect(mockProcessExit).not.toBeCalled(); + expect(mockConsoleError).not.toBeCalled(); + expect(mockProcessExit).toMatchSnapshot(); + expect(mockConsoleError).toMatchSnapshot(); + expect(mockConsoleLog).not.toBeCalled(); + expect(mockConsoleLog).toMatchSnapshot(); + jest.clearAllMocks() + expect(postman_url_updater.startConvert).toThrowErrorMatchingSnapshot(); + expect(mockProcessExit).toBeCalled(); + expect(mockConsoleError).toBeCalled(); + expect(mockProcessExit).toMatchSnapshot(); + expect(mockConsoleError).toMatchSnapshot(); + expect(mockConsoleLog).not.toBeCalled(); + expect(mockConsoleLog).toMatchSnapshot(); + }); + + it('Should show file saved message correctly with default path', async () => { + resetAndReimportUrlUpdator({ c: "__test__/collection/collection.json", r: "{{baseURL}}/{{path}}", w: "{{baseURL}}/{{path}}", s: undefined, p: undefined }); + postman_url_updater = require('../index.js') + expect(mockProcessExit).not.toBeCalled(); + expect(mockConsoleError).not.toBeCalled(); + expect(mockProcessExit).toMatchSnapshot(); + expect(mockConsoleError).toMatchSnapshot(); + expect(mockConsoleLog).not.toBeCalled(); + expect(mockConsoleLog).toMatchSnapshot(); + jest.clearAllMocks() + postman_url_updater.startConvert(); + expect(mockProcessExit).not.toBeCalled(); + expect(mockConsoleError).not.toBeCalled(); + expect(mockProcessExit).toMatchSnapshot(); + expect(mockConsoleError).toMatchSnapshot(); + expect(mockConsoleLog).toBeCalled(); + expect(mockConsoleLog).toMatchSnapshot(); + }); + + it('Should show file saved message correctly with custom path', async () => { + resetAndReimportUrlUpdator({ c: "__test__/collection/collection.json", r: "{{baseURL}}/{{path}}", w: "{{baseURL}}/{{path}}", s: "new_collection.json", p: undefined }); + postman_url_updater = require('../index.js') + expect(mockProcessExit).not.toBeCalled(); + expect(mockConsoleError).not.toBeCalled(); + expect(mockProcessExit).toMatchSnapshot(); + expect(mockConsoleError).toMatchSnapshot(); + expect(mockConsoleLog).not.toBeCalled(); + expect(mockConsoleLog).toMatchSnapshot(); + jest.clearAllMocks() + postman_url_updater.startConvert() + expect(mockProcessExit).not.toBeCalled(); + expect(mockConsoleError).not.toBeCalled(); + expect(mockProcessExit).toMatchSnapshot(); + expect(mockConsoleError).toMatchSnapshot(); + expect(mockConsoleLog).toBeCalled(); + expect(mockConsoleLog).toMatchSnapshot(); + }); + + it('Should throw error if exception thrown doesnt contain errono 4058', async () => { + resetAndReimportUrlUpdator({ c: "__test__/collection/collection.json", r: "{{baseURL}}/{{path}}", w: "{{baseURL}}/{{path}}", s: "new_collection.json", p: undefined }); + postman_url_updater = require('../index.js') + jest.clearAllMocks() + mockConsoleLog.mockImplementation(() => { throw new CustomError(256) }); + expect(postman_url_updater.startConvert).toThrowErrorMatchingSnapshot() + }); + + it('Should throw error if exception thrown doesnt contain errono property', async () => { + resetAndReimportUrlUpdator({ c: "__test__/collection/collection.json", r: "{{baseURL}}/{{path}}", w: "{{baseURL}}/{{path}}", s: "new_collection.json", p: undefined }); + postman_url_updater = require('../index.js') + jest.clearAllMocks() + mockConsoleLog.mockImplementation(() => { throw new Error() }); + expect(postman_url_updater.startConvert).toThrowErrorMatchingSnapshot() + }); + }) + + describe('Validate collection changes', () => { + let collectionPath = '__test__/collection/collection.json', + outputCollectionPath = '__test__/collection/output/new_unit.json'; + + it('validate no changes happens when there is no match', async () => { + const sourceCollection = new sdk.Collection(JSON.parse(fs.readFileSync(collectionPath).toString())).toJSON(); + resetAndReimportUrlUpdator({ c: collectionPath, r: "https://localhost:23456/api/v1/{{path}}", w: "{{baseURL}}/{{path}}", s: outputCollectionPath, p: undefined }); + require('../index.js').startConvert(); + const outputCollection = new sdk.Collection(JSON.parse(fs.readFileSync(outputCollectionPath).toString())).toJSON(); + expect(outputCollection.item[0].item[0].request).toStrictEqual(sourceCollection.item[0].item[0].request); + expect(outputCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0].request) + .toStrictEqual(sourceCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0].request); + expect(outputCollection.item[2].request).toStrictEqual(sourceCollection.item[2].request); + expect(outputCollection.item[3].request).toStrictEqual(sourceCollection.item[3].request); + }); + + it('validate change happens only for urls other properties remains the same', async () => { + function updatedRequestObject(source, depthID, postionID) { + source.request.url.host = ["{{baseURL}}"]; + source.request.url.path = [ + "{{path}}", + "testpath", + `:pathvariable${depthID}-${postionID}`, + "path", + `request${depthID}-${postionID}`, + ]; + delete source.request.url.protocol + } + + const sourceCollection = new sdk.Collection(JSON.parse(fs.readFileSync(collectionPath).toString())).toJSON(); + resetAndReimportUrlUpdator({ c: collectionPath, r: "https://www.testdomain0.ie", w: "{{baseURL}}/{{path}}", s: outputCollectionPath, p: undefined }); + require('../index.js').startConvert(); + const outputCollection = new sdk.Collection(JSON.parse(fs.readFileSync(outputCollectionPath).toString())).toJSON(); + + updatedRequestObject(sourceCollection.item[0].item[0], 1, 1); + updatedRequestObject(sourceCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0], 'n', 1); + updatedRequestObject(sourceCollection.item[2], 0, 1); + + expect(outputCollection.item[0].item[0].request).toStrictEqual(sourceCollection.item[0].item[0].request); + expect(outputCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0].request) + .toStrictEqual(sourceCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0].request); + expect(outputCollection.item[2].request).toStrictEqual(sourceCollection.item[2].request); + expect(outputCollection.item[3].request).toStrictEqual(sourceCollection.item[3].request); + }); + + it('validate change protocol is shown if not removed', async () => { + + function updatedRequestObject(source, depthID, postionID) { + source.request.url.host = ["{{baseURL}}"]; + source.request.url.path = [ + "{{path}}", + "testpath", + `:pathvariable${depthID}-${postionID}`, + "path", + `request${depthID}-${postionID}`, + ]; + } + + const sourceCollection = new sdk.Collection(JSON.parse(fs.readFileSync(collectionPath).toString())).toJSON(); + resetAndReimportUrlUpdator({ c: collectionPath, r: "www.testdomain0.ie", w: "{{baseURL}}/{{path}}", s: outputCollectionPath, p: undefined }); + require('../index.js').startConvert(); + const outputCollection = new sdk.Collection(JSON.parse(fs.readFileSync(outputCollectionPath).toString())).toJSON(); + + updatedRequestObject(sourceCollection.item[0].item[0], 1, 1); + updatedRequestObject(sourceCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0], 'n', 1); + updatedRequestObject(sourceCollection.item[2], 0, 1); + + expect(outputCollection.item[0].item[0].request).toStrictEqual(sourceCollection.item[0].item[0].request); + expect(outputCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0].request) + .toStrictEqual(sourceCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0].request); + expect(outputCollection.item[2].request).toStrictEqual(sourceCollection.item[2].request); + expect(outputCollection.item[3].request).toStrictEqual(sourceCollection.item[3].request); + }); + + + it('validate path varaible is removed if replaced', async () => { + + function updatedRequestObject(source, depthID, postionID) { + source.request.url.host = ["{{baseURL}}"]; + source.request.url.path = [ + "{{path}}", + "path", + `request${depthID}-${postionID}`, + ]; + source.request.url.variable = [] + } + + const sourceCollection = new sdk.Collection(JSON.parse(fs.readFileSync(collectionPath).toString())).toJSON(); + resetAndReimportUrlUpdator({ c: collectionPath, r: "www.testdomain0.ie/testpath/:pathvariable1-1", w: "{{baseURL}}/{{path}}", s: outputCollectionPath, p: undefined }); + require('../index.js').startConvert(); + const outputCollection = new sdk.Collection(JSON.parse(fs.readFileSync(outputCollectionPath).toString())).toJSON(); + + updatedRequestObject(sourceCollection.item[0].item[0], 1, 1); + + expect(outputCollection.item[0].item[0].request).toStrictEqual(sourceCollection.item[0].item[0].request); + expect(outputCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0].request) + .toStrictEqual(sourceCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0].request); + expect(outputCollection.item[2].request).toStrictEqual(sourceCollection.item[2].request); + expect(outputCollection.item[3].request).toStrictEqual(sourceCollection.item[3].request); + }); + + + it('validate query parameters are updated', async () => { + + function updatedRequestObject(source, depthID, postionID) { + source.request.url.path = [ + "testpath", + `:pathvariable${depthID}-${postionID}`, + "path", + `request${depthID}-${postionID}`, + ]; + source.request.url.query = [ + { key: 'query1-1-0', value: 'queryvalue1-1-0-0' }, + { key: 'test', value: 'queryvalue1-1-0' }, + { key: 'query1-1-1', value: 'queryvalue1-1-1' } + ] + + } + + const sourceCollection = new sdk.Collection(JSON.parse(fs.readFileSync(collectionPath).toString())).toJSON(); + resetAndReimportUrlUpdator({ c: collectionPath, r: "/:pathvariable1-1/path/request1-1?query1-1-0", w: "/:pathvariable1-1/path/request1-1?query1-1-0=queryvalue1-1-0-0&test", s: outputCollectionPath, p: undefined }); + require('../index.js').startConvert(); + const outputCollection = new sdk.Collection(JSON.parse(fs.readFileSync(outputCollectionPath).toString())).toJSON(); + + updatedRequestObject(sourceCollection.item[0].item[0], 1, 1); + + expect(outputCollection.item[0].item[0].request).toStrictEqual(sourceCollection.item[0].item[0].request); + expect(outputCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0].request) + .toStrictEqual(sourceCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0].request); + expect(outputCollection.item[2].request).toStrictEqual(sourceCollection.item[2].request); + expect(outputCollection.item[3].request).toStrictEqual(sourceCollection.item[3].request); + }); + + + it('validate query and path variables are removed if replaced completely', async () => { + + function updatedRequestObject(source, depthID, postionID) { + source.request.url.path = [ + 'v1', + '{{path}}' + ]; + source.request.url.variable = []; + source.request.url.query = []; + source.request.url.host = ["{{baseURL}}"]; + source.request.url.protocol = "{{protocol}}"; + + } + + const sourceCollection = new sdk.Collection(JSON.parse(fs.readFileSync(collectionPath).toString())).toJSON(); + resetAndReimportUrlUpdator({ + c: collectionPath, + r: "https://www.testdomain0.ie/testpath/:pathvariable1-1/path/request1-1?query1-1-0=queryvalue1-1-0&query1-1-1=queryvalue1-1-1", + w: "{{protocol}}://{{baseURL}}/v1/{{path}}", s: outputCollectionPath, p: undefined + }); + require('../index.js').startConvert(); + + const outputCollection = new sdk.Collection(JSON.parse(fs.readFileSync(outputCollectionPath).toString())).toJSON(); + + updatedRequestObject(sourceCollection.item[0].item[0], 1, 1); + + expect(outputCollection.item[0].item[0].request).toStrictEqual(sourceCollection.item[0].item[0].request); + expect(outputCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0].request) + .toStrictEqual(sourceCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0].request); + expect(outputCollection.item[2].request).toStrictEqual(sourceCollection.item[2].request); + expect(outputCollection.item[3].request).toStrictEqual(sourceCollection.item[3].request); + }); + + }) +}) + diff --git a/__test__/test-cli.test.js b/__test__/test-cli.test.js index f76536f..9f08c25 100644 --- a/__test__/test-cli.test.js +++ b/__test__/test-cli.test.js @@ -2,45 +2,45 @@ const exec = require('shelljs').exec, SDK = require('postman-collection'), FS = require('fs'); -describe('Validate index.js', () => { +describe('Validate index.js system test', () => { describe('Validate cli output messages', () => { it('Should show help if arguments are missing', async () => { - const commandResponse = exec('node "index.js"', { silent: true }); + const commandResponse = exec('node "bin/main.js"', { silent: true }); expect(commandResponse.stderr).toMatchSnapshot(); }); it('Should show help if -c argument is missing', async () => { - const commandResponse = exec('node "index.js" -c "test/collection/collection.json" -w "{{baseURL}}/{{path}}" -s "new_collection.json"', { silent: true }); + const commandResponse = exec('node "bin/main.js" -w "{{baseURL}}/{{path}}" -s "new_collection.json"', { silent: true }); expect(commandResponse.stderr).toMatchSnapshot(); expect(commandResponse.stdout).toMatchSnapshot(); }); it('Should show help if -r argument is missing', async () => { - const commandResponse = exec('node "index.js" -c "test/collection/collection.json" -w "{{baseURL}}/{{path}}" -s "new_collection.json"', { silent: true }); + const commandResponse = exec('node "bin/main.js" -c "test/collection/collection.json" -w "{{baseURL}}/{{path}}" -s "new_collection.json"', { silent: true }); expect(commandResponse.stderr).toMatchSnapshot(); expect(commandResponse.stdout).toMatchSnapshot(); }); it('Should show help if -w argument is missing', async () => { - const commandResponse = exec('node "index.js" -c "test/collection/collection.json" -r "{{baseURL}}/{{path}}" -s "new_collection.json"', { silent: true }); + const commandResponse = exec('node "bin/main.js" -c "test/collection/collection.json" -r "{{baseURL}}/{{path}}" -s "new_collection.json"', { silent: true }); expect(commandResponse.stderr).toMatchSnapshot(); expect(commandResponse.stdout).toMatchSnapshot(); }); it('Should show file not found error if collection doesnt exists', async () => { - const commandResponse = exec('node "index.js" -c "test/collection/collection.json" -r "https://localhost:23456/api/v1/{{path}}" -w "{{baseURL}}/{{path}}" -s "new_collection.json"', { silent: true }); + const commandResponse = exec('node "bin/main.js" -c "test/collection/collection.json" -r "https://localhost:23456/api/v1/{{path}}" -w "{{baseURL}}/{{path}}" -s "new_collection.json"', { silent: true }); expect(commandResponse.stderr).toMatchSnapshot(); expect(commandResponse.stdout).toMatchSnapshot(); }); it('Should show file saved message correctly with default path', async () => { - const commandResponse = exec('node "index.js" -c "__test__/collection/collection.json" -r "https://localhost:23456/api/v1/{{path}}" -w "{{baseURL}}/{{path}}"', { silent: true }); + const commandResponse = exec('node "bin/main.js" -c "__test__/collection/collection.json" -r "https://localhost:23456/api/v1/{{path}}" -w "{{baseURL}}/{{path}}"', { silent: true }); expect(commandResponse.stderr).toMatch(''); expect(commandResponse.stdout).toMatch(/File saved to: .*[\\|\/]__test__[\\|\/]collection[\\|\/]new_collection.json/g); }); it('Should show file saved message correctly with custom path', async () => { - const commandResponse = exec('node "index.js" -c "__test__/collection/collection.json" -r "https://localhost:23456/api/v1/{{path}}" -w "{{baseURL}}/{{path}}" -s "__test__/collection/output/new.json"', { silent: true }); + const commandResponse = exec('node "bin/main.js" -c "__test__/collection/collection.json" -r "https://localhost:23456/api/v1/{{path}}" -w "{{baseURL}}/{{path}}" -s "__test__/collection/output/new.json"', { silent: true }); expect(commandResponse.stderr).toMatch(''); expect(commandResponse.stdout).toMatch(/File saved to: .*[\\|\/]__test__[\\|\/]collection[\\|\/]output[\\|\/]new\.json/g); }); @@ -53,7 +53,7 @@ describe('Validate index.js', () => { it('validate no changes happens when there is no match', async () => { const sourceCollection = new SDK.Collection(JSON.parse(FS.readFileSync(collectionPath).toString())).toJSON(); - const commandResponse = exec(`node "index.js" -c "${collectionPath}" -r "https://localhost:23456/api/v1/{{path}}" -w "{{baseURL}}/{{path}}" -s "${outputCollectionPath}"`, { silent: true }); + const commandResponse = exec(`node "bin/main.js" -c "${collectionPath}" -r "https://localhost:23456/api/v1/{{path}}" -w "{{baseURL}}/{{path}}" -s "${outputCollectionPath}"`, { silent: true }); const outputCollection = new SDK.Collection(JSON.parse(FS.readFileSync(outputCollectionPath).toString())).toJSON(); expect(outputCollection.item[0].item[0].request).toStrictEqual(sourceCollection.item[0].item[0].request); expect(outputCollection.item[1].item[0].item[0].item[0].item[0].item[0].item[0].item[0].request) @@ -77,7 +77,7 @@ describe('Validate index.js', () => { } const sourceCollection = new SDK.Collection(JSON.parse(FS.readFileSync(collectionPath).toString())).toJSON(); - const commandResponse = exec(`node "index.js" -c "${collectionPath}" -r "https://www.testdomain0.ie" -w "{{baseURL}}/{{path}}" -s "${outputCollectionPath}"`, { silent: true }); + const commandResponse = exec(`node "bin/main.js" -c "${collectionPath}" -r "https://www.testdomain0.ie" -w "{{baseURL}}/{{path}}" -s "${outputCollectionPath}"`, { silent: true }); const outputCollection = new SDK.Collection(JSON.parse(FS.readFileSync(outputCollectionPath).toString())).toJSON(); updatedRequestObject(sourceCollection.item[0].item[0], 1, 1); @@ -105,7 +105,7 @@ describe('Validate index.js', () => { } const sourceCollection = new SDK.Collection(JSON.parse(FS.readFileSync(collectionPath).toString())).toJSON(); - const commandResponse = exec(`node "index.js" -c "${collectionPath}" -r "www.testdomain0.ie" -w "{{baseURL}}/{{path}}" -s "${outputCollectionPath}"`, { silent: true }); + const commandResponse = exec(`node "bin/main.js" -c "${collectionPath}" -r "www.testdomain0.ie" -w "{{baseURL}}/{{path}}" -s "${outputCollectionPath}"`, { silent: true }); const outputCollection = new SDK.Collection(JSON.parse(FS.readFileSync(outputCollectionPath).toString())).toJSON(); updatedRequestObject(sourceCollection.item[0].item[0], 1, 1); @@ -133,7 +133,7 @@ describe('Validate index.js', () => { } const sourceCollection = new SDK.Collection(JSON.parse(FS.readFileSync(collectionPath).toString())).toJSON(); - const commandResponse = exec(`node "index.js" -c "${collectionPath}" -r "www.testdomain0.ie/testpath/:pathvariable1-1" -w "{{baseURL}}/{{path}}" -s "${outputCollectionPath}"`, { silent: true }); + const commandResponse = exec(`node "bin/main.js" -c "${collectionPath}" -r "www.testdomain0.ie/testpath/:pathvariable1-1" -w "{{baseURL}}/{{path}}" -s "${outputCollectionPath}"`, { silent: true }); const outputCollection = new SDK.Collection(JSON.parse(FS.readFileSync(outputCollectionPath).toString())).toJSON(); updatedRequestObject(sourceCollection.item[0].item[0], 1, 1); @@ -164,7 +164,7 @@ describe('Validate index.js', () => { } const sourceCollection = new SDK.Collection(JSON.parse(FS.readFileSync(collectionPath).toString())).toJSON(); - const commandResponse = exec(`node "index.js" -c "${collectionPath}" -r "/:pathvariable1-1/path/request1-1?query1-1-0" -w "/:pathvariable1-1/path/request1-1?query1-1-0=queryvalue1-1-0-0&test" -s "${outputCollectionPath}"`, { silent: true }); + const commandResponse = exec(`node "bin/main.js" -c "${collectionPath}" -r "/:pathvariable1-1/path/request1-1?query1-1-0" -w "/:pathvariable1-1/path/request1-1?query1-1-0=queryvalue1-1-0-0&test" -s "${outputCollectionPath}"`, { silent: true }); const outputCollection = new SDK.Collection(JSON.parse(FS.readFileSync(outputCollectionPath).toString())).toJSON(); updatedRequestObject(sourceCollection.item[0].item[0], 1, 1); @@ -192,7 +192,7 @@ describe('Validate index.js', () => { } const sourceCollection = new SDK.Collection(JSON.parse(FS.readFileSync(collectionPath).toString())).toJSON(); - const commandResponse = exec(`node "index.js" -c "${collectionPath}" -r "https://www.testdomain0.ie/testpath/:pathvariable1-1/path/request1-1?query1-1-0=queryvalue1-1-0&query1-1-1=queryvalue1-1-1" -w "{{protocol}}://{{baseURL}}/v1/{{path}}" -s "${outputCollectionPath}"`, { silent: true }); + const commandResponse = exec(`node "bin/main.js" -c "${collectionPath}" -r "https://www.testdomain0.ie/testpath/:pathvariable1-1/path/request1-1?query1-1-0=queryvalue1-1-0&query1-1-1=queryvalue1-1-1" -w "{{protocol}}://{{baseURL}}/v1/{{path}}" -s "${outputCollectionPath}"`, { silent: true }); const outputCollection = new SDK.Collection(JSON.parse(FS.readFileSync(outputCollectionPath).toString())).toJSON(); updatedRequestObject(sourceCollection.item[0].item[0], 1, 1); diff --git a/__test__/utils/helperMethods.js b/__test__/utils/helperMethods.js new file mode 100644 index 0000000..fb6414b --- /dev/null +++ b/__test__/utils/helperMethods.js @@ -0,0 +1,23 @@ +function resetAndReimportUrlUpdator({ c, r, w, s, p }) { + jest.resetModules() + while (process.argv.length > 3) { + process.argv.pop(); + } + if (c) process.argv.push('-c', c); + if (r) process.argv.push('-r', r); + if (w) process.argv.push('-w', w); + if (s) process.argv.push('-s', s); + if (p) process.argv.push('-p', p); +} + + +class CustomError extends Error { + constructor(errno) { + super(); + this.errno = errno; + this.message = 'Custom error'; + } +}; + + +module.exports = { resetAndReimportUrlUpdator, CustomError }; \ No newline at end of file diff --git a/bin/main.js b/bin/main.js new file mode 100644 index 0000000..0d15a78 --- /dev/null +++ b/bin/main.js @@ -0,0 +1,3 @@ +#! /usr/bin/env node +let { startConvert } = require('../index.js') +startConvert() diff --git a/coverage/clover.xml b/coverage/clover.xml new file mode 100644 index 0000000..ba60a93 --- /dev/null +++ b/coverage/clover.xml @@ -0,0 +1,38 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json new file mode 100644 index 0000000..fc858f3 --- /dev/null +++ b/coverage/coverage-final.json @@ -0,0 +1,2 @@ +{"D:\\MyProjects\\collection_updater\\index.js": {"path":"D:\\MyProjects\\collection_updater\\index.js","statementMap":{"0":{"start":{"line":3,"column":14},"end":{"line":3,"column":30}},"1":{"start":{"line":4,"column":9},"end":{"line":4,"column":28}},"2":{"start":{"line":5,"column":10},"end":{"line":5,"column":39}},"3":{"start":{"line":6,"column":15},"end":{"line":9,"column":5}},"4":{"start":{"line":10,"column":14},"end":{"line":16,"column":13}},"5":{"start":{"line":17,"column":11},"end":{"line":17,"column":26}},"6":{"start":{"line":18,"column":21},"end":{"line":18,"column":61}},"7":{"start":{"line":19,"column":20},"end":{"line":19,"column":73}},"8":{"start":{"line":23,"column":4},"end":{"line":45,"column":5}},"9":{"start":{"line":24,"column":8},"end":{"line":24,"column":111}},"10":{"start":{"line":26,"column":8},"end":{"line":36,"column":10}},"11":{"start":{"line":28,"column":29},"end":{"line":28,"column":68}},"12":{"start":{"line":29,"column":12},"end":{"line":29,"column":53}},"13":{"start":{"line":30,"column":30},"end":{"line":30,"column":64}},"14":{"start":{"line":32,"column":27},"end":{"line":32,"column":100}},"15":{"start":{"line":35,"column":12},"end":{"line":35,"column":61}},"16":{"start":{"line":38,"column":29},"end":{"line":38,"column":140}},"17":{"start":{"line":39,"column":8},"end":{"line":39,"column":91}},"18":{"start":{"line":40,"column":8},"end":{"line":40,"column":53}},"19":{"start":{"line":42,"column":8},"end":{"line":42,"column":48}},"20":{"start":{"line":42,"column":34},"end":{"line":42,"column":48}},"21":{"start":{"line":43,"column":8},"end":{"line":43,"column":32}},"22":{"start":{"line":44,"column":8},"end":{"line":44,"column":22}},"23":{"start":{"line":50,"column":4},"end":{"line":50,"column":64}},"24":{"start":{"line":54,"column":4},"end":{"line":54,"column":42}},"25":{"start":{"line":55,"column":26},"end":{"line":55,"column":60}},"26":{"start":{"line":56,"column":4},"end":{"line":58,"column":6}},"27":{"start":{"line":57,"column":8},"end":{"line":57,"column":84}},"28":{"start":{"line":57,"column":61},"end":{"line":57,"column":84}},"29":{"start":{"line":59,"column":4},"end":{"line":59,"column":59}},"30":{"start":{"line":62,"column":0},"end":{"line":62,"column":31}}},"fnMap":{"0":{"name":"startConvert","decl":{"start":{"line":22,"column":9},"end":{"line":22,"column":21}},"loc":{"start":{"line":22,"column":24},"end":{"line":46,"column":1}},"line":22},"1":{"name":"(anonymous_1)","decl":{"start":{"line":26,"column":37},"end":{"line":26,"column":38}},"loc":{"start":{"line":26,"column":54},"end":{"line":36,"column":9}},"line":26},"2":{"name":"urlReplacer","decl":{"start":{"line":49,"column":9},"end":{"line":49,"column":20}},"loc":{"start":{"line":49,"column":65},"end":{"line":51,"column":1}},"line":49},"3":{"name":"updateCollection","decl":{"start":{"line":53,"column":9},"end":{"line":53,"column":25}},"loc":{"start":{"line":53,"column":58},"end":{"line":60,"column":1}},"line":53},"4":{"name":"(anonymous_4)","decl":{"start":{"line":56,"column":22},"end":{"line":56,"column":23}},"loc":{"start":{"line":56,"column":47},"end":{"line":58,"column":5}},"line":56}},"branchMap":{"0":{"loc":{"start":{"line":38,"column":42},"end":{"line":38,"column":139}},"type":"cond-expr","locations":[{"start":{"line":38,"column":81},"end":{"line":38,"column":121}},{"start":{"line":38,"column":124},"end":{"line":38,"column":139}}],"line":38},"1":{"loc":{"start":{"line":42,"column":8},"end":{"line":42,"column":48}},"type":"if","locations":[{"start":{"line":42,"column":8},"end":{"line":42,"column":48}},{"start":{},"end":{}}],"line":42},"2":{"loc":{"start":{"line":57,"column":8},"end":{"line":57,"column":84}},"type":"if","locations":[{"start":{"line":57,"column":8},"end":{"line":57,"column":84}},{"start":{},"end":{}}],"line":57}},"s":{"0":15,"1":15,"2":15,"3":15,"4":15,"5":11,"6":11,"7":11,"8":11,"9":11,"10":10,"11":40,"12":40,"13":40,"14":40,"15":40,"16":10,"17":10,"18":10,"19":3,"20":2,"21":1,"22":1,"23":40,"24":40,"25":40,"26":40,"27":40,"28":2,"29":40,"30":11},"f":{"0":11,"1":40,"2":40,"3":40,"4":40},"b":{"0":[1,9],"1":[2,1],"2":[2,38]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"757b490454f7e82f52b0dad6469dd1ef0db94aea"} +} diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css new file mode 100644 index 0000000..f418035 --- /dev/null +++ b/coverage/lcov-report/base.css @@ -0,0 +1,224 @@ +body, html { + margin:0; padding: 0; + height: 100%; +} +body { + font-family: Helvetica Neue, Helvetica, Arial; + font-size: 14px; + color:#333; +} +.small { font-size: 12px; } +*, *:after, *:before { + -webkit-box-sizing:border-box; + -moz-box-sizing:border-box; + box-sizing:border-box; + } +h1 { font-size: 20px; margin: 0;} +h2 { font-size: 14px; } +pre { + font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; + margin: 0; + padding: 0; + -moz-tab-size: 2; + -o-tab-size: 2; + tab-size: 2; +} +a { color:#0074D9; text-decoration:none; } +a:hover { text-decoration:underline; } +.strong { font-weight: bold; } +.space-top1 { padding: 10px 0 0 0; } +.pad2y { padding: 20px 0; } +.pad1y { padding: 10px 0; } +.pad2x { padding: 0 20px; } +.pad2 { padding: 20px; } +.pad1 { padding: 10px; } +.space-left2 { padding-left:55px; } +.space-right2 { padding-right:20px; } +.center { text-align:center; } +.clearfix { display:block; } +.clearfix:after { + content:''; + display:block; + height:0; + clear:both; + visibility:hidden; + } +.fl { float: left; } +@media only screen and (max-width:640px) { + .col3 { width:100%; max-width:100%; } + .hide-mobile { display:none!important; } +} + +.quiet { + color: #7f7f7f; + color: rgba(0,0,0,0.5); +} +.quiet a { opacity: 0.7; } + +.fraction { + font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; + font-size: 10px; + color: #555; + background: #E8E8E8; + padding: 4px 5px; + border-radius: 3px; + vertical-align: middle; +} + +div.path a:link, div.path a:visited { color: #333; } +table.coverage { + border-collapse: collapse; + margin: 10px 0 0 0; + padding: 0; +} + +table.coverage td { + margin: 0; + padding: 0; + vertical-align: top; +} +table.coverage td.line-count { + text-align: right; + padding: 0 5px 0 20px; +} +table.coverage td.line-coverage { + text-align: right; + padding-right: 10px; + min-width:20px; +} + +table.coverage td span.cline-any { + display: inline-block; + padding: 0 5px; + width: 100%; +} +.missing-if-branch { + display: inline-block; + margin-right: 5px; + border-radius: 3px; + position: relative; + padding: 0 4px; + background: #333; + color: yellow; +} + +.skip-if-branch { + display: none; + margin-right: 10px; + position: relative; + padding: 0 4px; + background: #ccc; + color: white; +} +.missing-if-branch .typ, .skip-if-branch .typ { + color: inherit !important; +} +.coverage-summary { + border-collapse: collapse; + width: 100%; +} +.coverage-summary tr { border-bottom: 1px solid #bbb; } +.keyline-all { border: 1px solid #ddd; } +.coverage-summary td, .coverage-summary th { padding: 10px; } +.coverage-summary tbody { border: 1px solid #bbb; } +.coverage-summary td { border-right: 1px solid #bbb; } +.coverage-summary td:last-child { border-right: none; } +.coverage-summary th { + text-align: left; + font-weight: normal; + white-space: nowrap; +} +.coverage-summary th.file { border-right: none !important; } +.coverage-summary th.pct { } +.coverage-summary th.pic, +.coverage-summary th.abs, +.coverage-summary td.pct, +.coverage-summary td.abs { text-align: right; } +.coverage-summary td.file { white-space: nowrap; } +.coverage-summary td.pic { min-width: 120px !important; } +.coverage-summary tfoot td { } + +.coverage-summary .sorter { + height: 10px; + width: 7px; + display: inline-block; + margin-left: 0.5em; + background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; +} +.coverage-summary .sorted .sorter { + background-position: 0 -20px; +} +.coverage-summary .sorted-desc .sorter { + background-position: 0 -10px; +} +.status-line { height: 10px; } +/* yellow */ +.cbranch-no { background: yellow !important; color: #111; } +/* dark red */ +.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } +.low .chart { border:1px solid #C21F39 } +.highlighted, +.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ + background: #C21F39 !important; +} +/* medium red */ +.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } +/* light red */ +.low, .cline-no { background:#FCE1E5 } +/* light green */ +.high, .cline-yes { background:rgb(230,245,208) } +/* medium green */ +.cstat-yes { background:rgb(161,215,106) } +/* dark green */ +.status-line.high, .high .cover-fill { background:rgb(77,146,33) } +.high .chart { border:1px solid rgb(77,146,33) } +/* dark yellow (gold) */ +.status-line.medium, .medium .cover-fill { background: #f9cd0b; } +.medium .chart { border:1px solid #f9cd0b; } +/* light yellow */ +.medium { background: #fff4c2; } + +.cstat-skip { background: #ddd; color: #111; } +.fstat-skip { background: #ddd; color: #111 !important; } +.cbranch-skip { background: #ddd !important; color: #111; } + +span.cline-neutral { background: #eaeaea; } + +.coverage-summary td.empty { + opacity: .5; + padding-top: 4px; + padding-bottom: 4px; + line-height: 1; + color: #888; +} + +.cover-fill, .cover-empty { + display:inline-block; + height: 12px; +} +.chart { + line-height: 0; +} +.cover-empty { + background: white; +} +.cover-full { + border-right: none !important; +} +pre.prettyprint { + border: none !important; + padding: 0 !important; + margin: 0 !important; +} +.com { color: #999 !important; } +.ignore-none { color: #999; font-weight: normal; } + +.wrapper { + min-height: 100%; + height: auto !important; + height: 100%; + margin: 0 auto -48px; +} +.footer, .push { + height: 48px; +} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js new file mode 100644 index 0000000..cc12130 --- /dev/null +++ b/coverage/lcov-report/block-navigation.js @@ -0,0 +1,87 @@ +/* eslint-disable */ +var jumpToCode = (function init() { + // Classes of code we would like to highlight in the file view + var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; + + // Elements to highlight in the file listing view + var fileListingElements = ['td.pct.low']; + + // We don't want to select elements that are direct descendants of another match + var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` + + // Selecter that finds elements on the page to which we can jump + var selector = + fileListingElements.join(', ') + + ', ' + + notSelector + + missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` + + // The NodeList of matching elements + var missingCoverageElements = document.querySelectorAll(selector); + + var currentIndex; + + function toggleClass(index) { + missingCoverageElements + .item(currentIndex) + .classList.remove('highlighted'); + missingCoverageElements.item(index).classList.add('highlighted'); + } + + function makeCurrent(index) { + toggleClass(index); + currentIndex = index; + missingCoverageElements.item(index).scrollIntoView({ + behavior: 'smooth', + block: 'center', + inline: 'center' + }); + } + + function goToPrevious() { + var nextIndex = 0; + if (typeof currentIndex !== 'number' || currentIndex === 0) { + nextIndex = missingCoverageElements.length - 1; + } else if (missingCoverageElements.length > 1) { + nextIndex = currentIndex - 1; + } + + makeCurrent(nextIndex); + } + + function goToNext() { + var nextIndex = 0; + + if ( + typeof currentIndex === 'number' && + currentIndex < missingCoverageElements.length - 1 + ) { + nextIndex = currentIndex + 1; + } + + makeCurrent(nextIndex); + } + + return function jump(event) { + if ( + document.getElementById('fileSearch') === document.activeElement && + document.activeElement != null + ) { + // if we're currently focused on the search input, we don't want to navigate + return; + } + + switch (event.which) { + case 78: // n + case 74: // j + goToNext(); + break; + case 66: // b + case 75: // k + case 80: // p + goToPrevious(); + break; + } + }; +})(); +window.addEventListener('keydown', jumpToCode); diff --git a/coverage/lcov-report/collection_updater/coverage/lcov-report/block-navigation.js.html b/coverage/lcov-report/collection_updater/coverage/lcov-report/block-navigation.js.html new file mode 100644 index 0000000..fedc18f --- /dev/null +++ b/coverage/lcov-report/collection_updater/coverage/lcov-report/block-navigation.js.html @@ -0,0 +1,346 @@ + + + + + + Code coverage report for collection_updater/coverage/lcov-report/block-navigation.js + + + + + + + + + +
+
+

All files / collection_updater/coverage/lcov-report block-navigation.js

+
+ +
+ 0% + Statements + 0/30 +
+ + +
+ 0% + Branches + 0/19 +
+ + +
+ 0% + Functions + 0/6 +
+ + +
+ 0% + Lines + 0/30 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
/* eslint-disable */
+var jumpToCode = (function init() {
+    // Classes of code we would like to highlight in the file view
+    var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];
+ 
+    // Elements to highlight in the file listing view
+    var fileListingElements = ['td.pct.low'];
+ 
+    // We don't want to select elements that are direct descendants of another match
+    var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
+ 
+    // Selecter that finds elements on the page to which we can jump
+    var selector =
+        fileListingElements.join(', ') +
+        ', ' +
+        notSelector +
+        missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
+ 
+    // The NodeList of matching elements
+    var missingCoverageElements = document.querySelectorAll(selector);
+ 
+    var currentIndex;
+ 
+    function toggleClass(index) {
+        missingCoverageElements
+            .item(currentIndex)
+            .classList.remove('highlighted');
+        missingCoverageElements.item(index).classList.add('highlighted');
+    }
+ 
+    function makeCurrent(index) {
+        toggleClass(index);
+        currentIndex = index;
+        missingCoverageElements.item(index).scrollIntoView({
+            behavior: 'smooth',
+            block: 'center',
+            inline: 'center'
+        });
+    }
+ 
+    function goToPrevious() {
+        var nextIndex = 0;
+        if (typeof currentIndex !== 'number' || currentIndex === 0) {
+            nextIndex = missingCoverageElements.length - 1;
+        } else if (missingCoverageElements.length > 1) {
+            nextIndex = currentIndex - 1;
+        }
+ 
+        makeCurrent(nextIndex);
+    }
+ 
+    function goToNext() {
+        var nextIndex = 0;
+ 
+        if (
+            typeof currentIndex === 'number' &&
+            currentIndex < missingCoverageElements.length - 1
+        ) {
+            nextIndex = currentIndex + 1;
+        }
+ 
+        makeCurrent(nextIndex);
+    }
+ 
+    return function jump(event) {
+        if (
+            document.getElementById('fileSearch') === document.activeElement &&
+            document.activeElement != null
+        ) {
+            // if we're currently focused on the search input, we don't want to navigate
+            return;
+        }
+ 
+        switch (event.which) {
+            case 78: // n
+            case 74: // j
+                goToNext();
+                break;
+            case 66: // b
+            case 75: // k
+            case 80: // p
+                goToPrevious();
+                break;
+        }
+    };
+})();
+window.addEventListener('keydown', jumpToCode);
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/collection_updater/coverage/lcov-report/index.html b/coverage/lcov-report/collection_updater/coverage/lcov-report/index.html new file mode 100644 index 0000000..ee7b425 --- /dev/null +++ b/coverage/lcov-report/collection_updater/coverage/lcov-report/index.html @@ -0,0 +1,146 @@ + + + + + + Code coverage report for collection_updater/coverage/lcov-report + + + + + + + + + +
+
+

All files collection_updater/coverage/lcov-report

+
+ +
+ 0% + Statements + 0/656 +
+ + +
+ 0% + Branches + 0/329 +
+ + +
+ 0% + Functions + 0/54 +
+ + +
+ 0% + Lines + 0/120 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
block-navigation.js +
+
0%0/300%0/190%0/60%0/30
prettify.js +
+
0%0/5360%0/2860%0/290%0/1
sorter.js +
+
0%0/900%0/240%0/190%0/89
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/collection_updater/coverage/lcov-report/prettify.js.html b/coverage/lcov-report/collection_updater/coverage/lcov-report/prettify.js.html new file mode 100644 index 0000000..08e50aa --- /dev/null +++ b/coverage/lcov-report/collection_updater/coverage/lcov-report/prettify.js.html @@ -0,0 +1,91 @@ + + + + + + Code coverage report for collection_updater/coverage/lcov-report/prettify.js + + + + + + + + + +
+
+

All files / collection_updater/coverage/lcov-report prettify.js

+
+ +
+ 0% + Statements + 0/536 +
+ + +
+ 0% + Branches + 0/286 +
+ + +
+ 0% + Functions + 0/29 +
+ + +
+ 0% + Lines + 0/1 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3  +  + 
/* eslint-disable */
+window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/collection_updater/coverage/lcov-report/sorter.js.html b/coverage/lcov-report/collection_updater/coverage/lcov-report/sorter.js.html new file mode 100644 index 0000000..16e5606 --- /dev/null +++ b/coverage/lcov-report/collection_updater/coverage/lcov-report/sorter.js.html @@ -0,0 +1,673 @@ + + + + + + Code coverage report for collection_updater/coverage/lcov-report/sorter.js + + + + + + + + + +
+
+

All files / collection_updater/coverage/lcov-report sorter.js

+
+ +
+ 0% + Statements + 0/90 +
+ + +
+ 0% + Branches + 0/24 +
+ + +
+ 0% + Functions + 0/19 +
+ + +
+ 0% + Lines + 0/89 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62 +63 +64 +65 +66 +67 +68 +69 +70 +71 +72 +73 +74 +75 +76 +77 +78 +79 +80 +81 +82 +83 +84 +85 +86 +87 +88 +89 +90 +91 +92 +93 +94 +95 +96 +97 +98 +99 +100 +101 +102 +103 +104 +105 +106 +107 +108 +109 +110 +111 +112 +113 +114 +115 +116 +117 +118 +119 +120 +121 +122 +123 +124 +125 +126 +127 +128 +129 +130 +131 +132 +133 +134 +135 +136 +137 +138 +139 +140 +141 +142 +143 +144 +145 +146 +147 +148 +149 +150 +151 +152 +153 +154 +155 +156 +157 +158 +159 +160 +161 +162 +163 +164 +165 +166 +167 +168 +169 +170 +171 +172 +173 +174 +175 +176 +177 +178 +179 +180 +181 +182 +183 +184 +185 +186 +187 +188 +189 +190 +191 +192 +193 +194 +195 +196 +197  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
/* eslint-disable */
+var addSorting = (function() {
+    'use strict';
+    var cols,
+        currentSort = {
+            index: 0,
+            desc: false
+        };
+ 
+    // returns the summary table element
+    function getTable() {
+        return document.querySelector('.coverage-summary');
+    }
+    // returns the thead element of the summary table
+    function getTableHeader() {
+        return getTable().querySelector('thead tr');
+    }
+    // returns the tbody element of the summary table
+    function getTableBody() {
+        return getTable().querySelector('tbody');
+    }
+    // returns the th element for nth column
+    function getNthColumn(n) {
+        return getTableHeader().querySelectorAll('th')[n];
+    }
+ 
+    function onFilterInput() {
+        const searchValue = document.getElementById('fileSearch').value;
+        const rows = document.getElementsByTagName('tbody')[0].children;
+        for (let i = 0; i < rows.length; i++) {
+            const row = rows[i];
+            if (
+                row.textContent
+                    .toLowerCase()
+                    .includes(searchValue.toLowerCase())
+            ) {
+                row.style.display = '';
+            } else {
+                row.style.display = 'none';
+            }
+        }
+    }
+ 
+    // loads the search box
+    function addSearchBox() {
+        var template = document.getElementById('filterTemplate');
+        var templateClone = template.content.cloneNode(true);
+        templateClone.getElementById('fileSearch').oninput = onFilterInput;
+        template.parentElement.appendChild(templateClone);
+    }
+ 
+    // loads all columns
+    function loadColumns() {
+        var colNodes = getTableHeader().querySelectorAll('th'),
+            colNode,
+            cols = [],
+            col,
+            i;
+ 
+        for (i = 0; i < colNodes.length; i += 1) {
+            colNode = colNodes[i];
+            col = {
+                key: colNode.getAttribute('data-col'),
+                sortable: !colNode.getAttribute('data-nosort'),
+                type: colNode.getAttribute('data-type') || 'string'
+            };
+            cols.push(col);
+            if (col.sortable) {
+                col.defaultDescSort = col.type === 'number';
+                colNode.innerHTML =
+                    colNode.innerHTML + '<span class="sorter"></span>';
+            }
+        }
+        return cols;
+    }
+    // attaches a data attribute to every tr element with an object
+    // of data values keyed by column name
+    function loadRowData(tableRow) {
+        var tableCols = tableRow.querySelectorAll('td'),
+            colNode,
+            col,
+            data = {},
+            i,
+            val;
+        for (i = 0; i < tableCols.length; i += 1) {
+            colNode = tableCols[i];
+            col = cols[i];
+            val = colNode.getAttribute('data-value');
+            if (col.type === 'number') {
+                val = Number(val);
+            }
+            data[col.key] = val;
+        }
+        return data;
+    }
+    // loads all row data
+    function loadData() {
+        var rows = getTableBody().querySelectorAll('tr'),
+            i;
+ 
+        for (i = 0; i < rows.length; i += 1) {
+            rows[i].data = loadRowData(rows[i]);
+        }
+    }
+    // sorts the table using the data for the ith column
+    function sortByIndex(index, desc) {
+        var key = cols[index].key,
+            sorter = function(a, b) {
+                a = a.data[key];
+                b = b.data[key];
+                return a < b ? -1 : a > b ? 1 : 0;
+            },
+            finalSorter = sorter,
+            tableBody = document.querySelector('.coverage-summary tbody'),
+            rowNodes = tableBody.querySelectorAll('tr'),
+            rows = [],
+            i;
+ 
+        if (desc) {
+            finalSorter = function(a, b) {
+                return -1 * sorter(a, b);
+            };
+        }
+ 
+        for (i = 0; i < rowNodes.length; i += 1) {
+            rows.push(rowNodes[i]);
+            tableBody.removeChild(rowNodes[i]);
+        }
+ 
+        rows.sort(finalSorter);
+ 
+        for (i = 0; i < rows.length; i += 1) {
+            tableBody.appendChild(rows[i]);
+        }
+    }
+    // removes sort indicators for current column being sorted
+    function removeSortIndicators() {
+        var col = getNthColumn(currentSort.index),
+            cls = col.className;
+ 
+        cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
+        col.className = cls;
+    }
+    // adds sort indicators for current column being sorted
+    function addSortIndicators() {
+        getNthColumn(currentSort.index).className += currentSort.desc
+            ? ' sorted-desc'
+            : ' sorted';
+    }
+    // adds event listeners for all sorter widgets
+    function enableUI() {
+        var i,
+            el,
+            ithSorter = function ithSorter(i) {
+                var col = cols[i];
+ 
+                return function() {
+                    var desc = col.defaultDescSort;
+ 
+                    if (currentSort.index === i) {
+                        desc = !currentSort.desc;
+                    }
+                    sortByIndex(i, desc);
+                    removeSortIndicators();
+                    currentSort.index = i;
+                    currentSort.desc = desc;
+                    addSortIndicators();
+                };
+            };
+        for (i = 0; i < cols.length; i += 1) {
+            if (cols[i].sortable) {
+                // add the click event handler on the th so users
+                // dont have to click on those tiny arrows
+                el = getNthColumn(i).querySelector('.sorter').parentElement;
+                if (el.addEventListener) {
+                    el.addEventListener('click', ithSorter(i));
+                } else {
+                    el.attachEvent('onclick', ithSorter(i));
+                }
+            }
+        }
+    }
+    // adds sorting functionality to the UI
+    return function() {
+        if (!getTable()) {
+            return;
+        }
+        cols = loadColumns();
+        loadData();
+        addSearchBox();
+        addSortIndicators();
+        enableUI();
+    };
+})();
+ 
+window.addEventListener('load', addSorting);
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/collection_updater/index.html b/coverage/lcov-report/collection_updater/index.html new file mode 100644 index 0000000..edae1d8 --- /dev/null +++ b/coverage/lcov-report/collection_updater/index.html @@ -0,0 +1,116 @@ + + + + + + Code coverage report for collection_updater + + + + + + + + + +
+
+

All files collection_updater

+
+ +
+ 0% + Statements + 0/29 +
+ + +
+ 0% + Branches + 0/6 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/27 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.js +
+
0%0/290%0/60%0/40%0/27
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/collection_updater/index.js.html b/coverage/lcov-report/collection_updater/index.js.html new file mode 100644 index 0000000..bb6af17 --- /dev/null +++ b/coverage/lcov-report/collection_updater/index.js.html @@ -0,0 +1,253 @@ + + + + + + Code coverage report for collection_updater/index.js + + + + + + + + + +
+
+

All files / collection_updater index.js

+
+ +
+ 0% + Statements + 0/29 +
+ + +
+ 0% + Branches + 0/6 +
+ + +
+ 0% + Functions + 0/4 +
+ + +
+ 0% + Lines + 0/27 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  +  + 
#! /usr/bin/env node
+let sourceCollection;
+ 
+const YARGS = require('yargs'),
+    FS = require('fs-extra'),
+    SDK = require('postman-collection'),
+    DEFAULTS = {
+        replace_url_part: 'all',
+        save_as: 'root/new_<collection_name>.json',
+    },
+    OPTIONS = YARGS
+        .usage('Usage: -c "root/collection_name.json" -r "{{Baseurl}}/path1/path2" -w "{{Baseurl}}/{{path}}" -s "root/new_collection_name.json"')
+        .option('c', { alias: 'collection_path', describe: 'Path to Collection file', type: 'string', demandOption: true })
+        .option('r', { alias: 'replace_url_part', describe: 'Replaces only the matching part of the URL', type: 'string', demandOption: true })
+        .option('w', { alias: 'with_url_part', describe: 'Replaces the matching part of the URL with provided value', type: 'string', demandOption: true })
+        .option('s', { alias: 'save_as', describe: 'path to save new collection', type: 'string', demandOption: false, default: DEFAULTS.save_as })
+        .argv,
+    PATH = require('path'),
+    COLLECTIONFILE = PATH.parse(OPTIONS.collection_path).base,
+    COLLECTIONDIR = PATH.resolve(PATH.parse(OPTIONS.collection_path).dir);
+ 
+try {
+    sourceCollection = new SDK.Collection(JSON.parse(FS.readFileSync(OPTIONS.collection_path).toString()));
+    //forEachItem has all request details irrespective of folder structure
+    sourceCollection.forEachItem((requestItem) => {
+        //stops path variable from resolving
+        let variables_ = requestItem.request.url.variables.all()
+        requestItem.request.url.variables.clear()
+        let currentURL_ = requestItem.request.url.toString()
+ 
+        const newURL = urlReplacer(currentURL_, OPTIONS.replace_url_part, OPTIONS.with_url_part)
+ 
+        //add varaibles back if required and update the collection
+        updateCollection(requestItem, variables_, newURL)
+    })
+ 
+    const destination_ = PATH.resolve(OPTIONS.save_as === DEFAULTS.save_as ? `${COLLECTIONDIR}/new_${COLLECTIONFILE}` : OPTIONS.save_as)
+    FS.outputFileSync(destination_, JSON.stringify(sourceCollection.toJSON(), null, 2))
+    console.log(`File saved to: ${destination_}`)
+} catch (e) {
+    if (!e.errno === 4058) throw Error(e)
+    console.log(e.message)
+}
+ 
+function urlReplacer(currentUrl, urlToReplace, urlToReplaceWith) {
+    return currentUrl.replaceAll(urlToReplace, urlToReplaceWith)
+}
+ 
+function updateCollection(requestItem, variables, newURL) {
+    requestItem.request.url.update(newURL)
+    const newURLString_ = requestItem.request.url.toString()
+    variables.forEach((variableItem, index) => {
+        if (!newURLString_.includes(`:${variableItem.key}`)) delete variables[index]
+    })
+    requestItem.request.url.variables.repopulate(variables)
+}
+ 
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/favicon.png b/coverage/lcov-report/favicon.png new file mode 100644 index 0000000000000000000000000000000000000000..6691817834a957c938e7f09640a37a645fb31457 GIT binary patch literal 540 zcmV+%0^|LOP)wSzy{h>9elhJ=8GnBQmf?)AI(^#wDA_`!QTxaXXE&bjxo zTGCc%V|W`}Lwz0rDO*qBbGY-M@aNENIZ1rK?nOAibaC*vb%CF;I_~lkJawax%_+1J zLn(#pv_v{f0`v`Cfp6()7MB(>IoTAiQdKxgxX?VyV&KVZ7b$vn<8|Z<9$35C+G_8SH0x6Y(xB&~bmn%r}ceRwbc0000 + + + + Code coverage report for All files + + + + + + + + + +
+
+

All files

+
+ +
+ 100% + Statements + 31/31 +
+ + +
+ 100% + Branches + 6/6 +
+ + +
+ 100% + Functions + 5/5 +
+ + +
+ 100% + Lines + 29/29 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
FileStatementsBranchesFunctionsLines
index.js +
+
100%31/31100%6/6100%5/5100%29/29
+
+
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/index.js.html b/coverage/lcov-report/index.js.html new file mode 100644 index 0000000..9e2b6f4 --- /dev/null +++ b/coverage/lcov-report/index.js.html @@ -0,0 +1,268 @@ + + + + + + Code coverage report for index.js + + + + + + + + + +
+
+

All files index.js

+
+ +
+ 100% + Statements + 31/31 +
+ + +
+ 100% + Branches + 6/6 +
+ + +
+ 100% + Functions + 5/5 +
+ + +
+ 100% + Lines + 29/29 +
+ + +
+

+ Press n or j to go to the next uncovered block, b, p or k for the previous block. +

+ +
+
+

+
1 +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +16 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 +31 +32 +33 +34 +35 +36 +37 +38 +39 +40 +41 +42 +43 +44 +45 +46 +47 +48 +49 +50 +51 +52 +53 +54 +55 +56 +57 +58 +59 +60 +61 +62  +  +15x +15x +15x +15x +  +  +  +15x +  +  +  +  +  +  +11x +11x +11x +  +  +  +11x +11x +  +10x +  +40x +40x +40x +  +40x +  +  +40x +  +  +10x +10x +10x +  +3x +1x +1x +  +  +  +  +  +40x +  +  +  +40x +40x +40x +40x +  +40x +  +  +11x
let sourceCollection;
+ 
+const YARGS = require('yargs'),
+    FS = require('fs-extra'),
+    SDK = require('postman-collection'),
+    DEFAULTS = {
+        replace_url_part: 'all',
+        save_as: 'root/new_<collection_name>.json',
+    },
+    OPTIONS = YARGS
+        .usage('Usage: -c "root/collection_name.json" -r "{{Baseurl}}/path1/path2" -w "{{Baseurl}}/{{path}}" -s "root/new_collection_name.json"')
+        .option('c', { alias: 'collection_path', describe: 'Path to Collection file', type: 'string', demandOption: true })
+        .option('r', { alias: 'replace_url_part', describe: 'Replaces only the matching part of the URL', type: 'string', demandOption: true })
+        .option('w', { alias: 'with_url_part', describe: 'Replaces the matching part of the URL with provided value', type: 'string', demandOption: true })
+        .option('s', { alias: 'save_as', describe: 'path to save new collection', type: 'string', demandOption: false, default: DEFAULTS.save_as })
+        .argv,
+    PATH = require('path'),
+    COLLECTIONFILE = PATH.parse(OPTIONS.collection_path).base,
+    COLLECTIONDIR = PATH.resolve(PATH.parse(OPTIONS.collection_path).dir);
+ 
+ 
+function startConvert() {
+    try {
+        sourceCollection = new SDK.Collection(JSON.parse(FS.readFileSync(OPTIONS.collection_path).toString()));
+        //forEachItem has all request details irrespective of folder structure
+        sourceCollection.forEachItem((requestItem) => {
+            //stops path variable from resolving
+            let variables_ = requestItem.request.url.variables.all()
+            requestItem.request.url.variables.clear()
+            let currentURL_ = requestItem.request.url.toString()
+ 
+            const newURL = urlReplacer(currentURL_, OPTIONS.replace_url_part, OPTIONS.with_url_part)
+ 
+            //add varaibles back if required and update the collection
+            updateCollection(requestItem, variables_, newURL)
+        })
+ 
+        const destination_ = PATH.resolve(OPTIONS.save_as === DEFAULTS.save_as ? `${COLLECTIONDIR}/new_${COLLECTIONFILE}` : OPTIONS.save_as)
+        FS.outputFileSync(destination_, JSON.stringify(sourceCollection.toJSON(), null, 2))
+        console.log(`File saved to: ${destination_}`)
+    } catch (e) {
+        if (!(e.errno === -4058)) throw Error(e)
+        console.error(e.message)
+        process.exit()
+    }
+}
+ 
+ 
+function urlReplacer(currentUrl, urlToReplace, urlToReplaceWith) {
+    return currentUrl.replaceAll(urlToReplace, urlToReplaceWith)
+}
+ 
+function updateCollection(requestItem, variables, newURL) {
+    requestItem.request.url.update(newURL)
+    const newURLString_ = requestItem.request.url.toString()
+    variables.forEach((variableItem, index) => {
+        if (!newURLString_.includes(`:${variableItem.key}`)) delete variables[index]
+    })
+    requestItem.request.url.variables.repopulate(variables)
+}
+ 
+module.exports = {startConvert}
+ +
+
+ + + + + + + + \ No newline at end of file diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css new file mode 100644 index 0000000..b317a7c --- /dev/null +++ b/coverage/lcov-report/prettify.css @@ -0,0 +1 @@ +.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js new file mode 100644 index 0000000..b322523 --- /dev/null +++ b/coverage/lcov-report/prettify.js @@ -0,0 +1,2 @@ +/* eslint-disable */ +window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png new file mode 100644 index 0000000000000000000000000000000000000000..03f704a609c6fd0dbfdac63466a7d7c958b5cbf3 GIT binary patch literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; + } + } + return cols; + } + // attaches a data attribute to every tr element with an object + // of data values keyed by column name + function loadRowData(tableRow) { + var tableCols = tableRow.querySelectorAll('td'), + colNode, + col, + data = {}, + i, + val; + for (i = 0; i < tableCols.length; i += 1) { + colNode = tableCols[i]; + col = cols[i]; + val = colNode.getAttribute('data-value'); + if (col.type === 'number') { + val = Number(val); + } + data[col.key] = val; + } + return data; + } + // loads all row data + function loadData() { + var rows = getTableBody().querySelectorAll('tr'), + i; + + for (i = 0; i < rows.length; i += 1) { + rows[i].data = loadRowData(rows[i]); + } + } + // sorts the table using the data for the ith column + function sortByIndex(index, desc) { + var key = cols[index].key, + sorter = function(a, b) { + a = a.data[key]; + b = b.data[key]; + return a < b ? -1 : a > b ? 1 : 0; + }, + finalSorter = sorter, + tableBody = document.querySelector('.coverage-summary tbody'), + rowNodes = tableBody.querySelectorAll('tr'), + rows = [], + i; + + if (desc) { + finalSorter = function(a, b) { + return -1 * sorter(a, b); + }; + } + + for (i = 0; i < rowNodes.length; i += 1) { + rows.push(rowNodes[i]); + tableBody.removeChild(rowNodes[i]); + } + + rows.sort(finalSorter); + + for (i = 0; i < rows.length; i += 1) { + tableBody.appendChild(rows[i]); + } + } + // removes sort indicators for current column being sorted + function removeSortIndicators() { + var col = getNthColumn(currentSort.index), + cls = col.className; + + cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); + col.className = cls; + } + // adds sort indicators for current column being sorted + function addSortIndicators() { + getNthColumn(currentSort.index).className += currentSort.desc + ? ' sorted-desc' + : ' sorted'; + } + // adds event listeners for all sorter widgets + function enableUI() { + var i, + el, + ithSorter = function ithSorter(i) { + var col = cols[i]; + + return function() { + var desc = col.defaultDescSort; + + if (currentSort.index === i) { + desc = !currentSort.desc; + } + sortByIndex(i, desc); + removeSortIndicators(); + currentSort.index = i; + currentSort.desc = desc; + addSortIndicators(); + }; + }; + for (i = 0; i < cols.length; i += 1) { + if (cols[i].sortable) { + // add the click event handler on the th so users + // dont have to click on those tiny arrows + el = getNthColumn(i).querySelector('.sorter').parentElement; + if (el.addEventListener) { + el.addEventListener('click', ithSorter(i)); + } else { + el.attachEvent('onclick', ithSorter(i)); + } + } + } + } + // adds sorting functionality to the UI + return function() { + if (!getTable()) { + return; + } + cols = loadColumns(); + loadData(); + addSearchBox(); + addSortIndicators(); + enableUI(); + }; +})(); + +window.addEventListener('load', addSorting); diff --git a/coverage/lcov.info b/coverage/lcov.info new file mode 100644 index 0000000..4e3d3cb --- /dev/null +++ b/coverage/lcov.info @@ -0,0 +1,54 @@ +TN: +SF:index.js +FN:22,startConvert +FN:26,(anonymous_1) +FN:49,urlReplacer +FN:53,updateCollection +FN:56,(anonymous_4) +FNF:5 +FNH:5 +FNDA:11,startConvert +FNDA:40,(anonymous_1) +FNDA:40,urlReplacer +FNDA:40,updateCollection +FNDA:40,(anonymous_4) +DA:3,15 +DA:4,15 +DA:5,15 +DA:6,15 +DA:10,15 +DA:17,11 +DA:18,11 +DA:19,11 +DA:23,11 +DA:24,11 +DA:26,10 +DA:28,40 +DA:29,40 +DA:30,40 +DA:32,40 +DA:35,40 +DA:38,10 +DA:39,10 +DA:40,10 +DA:42,3 +DA:43,1 +DA:44,1 +DA:50,40 +DA:54,40 +DA:55,40 +DA:56,40 +DA:57,40 +DA:59,40 +DA:62,11 +LF:29 +LH:29 +BRDA:38,0,0,1 +BRDA:38,0,1,9 +BRDA:42,1,0,2 +BRDA:42,1,1,1 +BRDA:57,2,0,2 +BRDA:57,2,1,38 +BRF:6 +BRH:6 +end_of_record diff --git a/index.js b/index.js index 5ce4fb2..5dcf684 100644 --- a/index.js +++ b/index.js @@ -1,4 +1,3 @@ -#! /usr/bin/env node let sourceCollection; const YARGS = require('yargs'), @@ -19,29 +18,34 @@ const YARGS = require('yargs'), COLLECTIONFILE = PATH.parse(OPTIONS.collection_path).base, COLLECTIONDIR = PATH.resolve(PATH.parse(OPTIONS.collection_path).dir); -try { - sourceCollection = new SDK.Collection(JSON.parse(FS.readFileSync(OPTIONS.collection_path).toString())); - //forEachItem has all request details irrespective of folder structure - sourceCollection.forEachItem((requestItem) => { - //stops path variable from resolving - let variables_ = requestItem.request.url.variables.all() - requestItem.request.url.variables.clear() - let currentURL_ = requestItem.request.url.toString() - const newURL = urlReplacer(currentURL_, OPTIONS.replace_url_part, OPTIONS.with_url_part) +function startConvert() { + try { + sourceCollection = new SDK.Collection(JSON.parse(FS.readFileSync(OPTIONS.collection_path).toString())); + //forEachItem has all request details irrespective of folder structure + sourceCollection.forEachItem((requestItem) => { + //stops path variable from resolving + let variables_ = requestItem.request.url.variables.all() + requestItem.request.url.variables.clear() + let currentURL_ = requestItem.request.url.toString() - //add varaibles back if required and update the collection - updateCollection(requestItem, variables_, newURL) - }) + const newURL = urlReplacer(currentURL_, OPTIONS.replace_url_part, OPTIONS.with_url_part) + + //add varaibles back if required and update the collection + updateCollection(requestItem, variables_, newURL) + }) - const destination_ = PATH.resolve(OPTIONS.save_as === DEFAULTS.save_as ? `${COLLECTIONDIR}/new_${COLLECTIONFILE}` : OPTIONS.save_as) - FS.outputFileSync(destination_, JSON.stringify(sourceCollection.toJSON(), null, 2)) - console.log(`File saved to: ${destination_}`) -} catch (e) { - if (!e.errno === 4058) throw Error(e) - console.log(e.message) + const destination_ = PATH.resolve(OPTIONS.save_as === DEFAULTS.save_as ? `${COLLECTIONDIR}/new_${COLLECTIONFILE}` : OPTIONS.save_as) + FS.outputFileSync(destination_, JSON.stringify(sourceCollection.toJSON(), null, 2)) + console.log(`File saved to: ${destination_}`) + } catch (e) { + if (!(e.errno === -4058)) throw Error(e) + console.error(e.message) + process.exit() + } } + function urlReplacer(currentUrl, urlToReplace, urlToReplaceWith) { return currentUrl.replaceAll(urlToReplace, urlToReplaceWith) } @@ -54,3 +58,5 @@ function updateCollection(requestItem, variables, newURL) { }) requestItem.request.url.variables.repopulate(variables) } + +module.exports = {startConvert} \ No newline at end of file diff --git a/new_collection.json b/new_collection.json new file mode 100644 index 0000000..ef32659 --- /dev/null +++ b/new_collection.json @@ -0,0 +1,471 @@ +{ + "_": { + "postman_id": "738641d0-80bf-4ad1-92cc-b947f0bf6c56" + }, + "item": [ + { + "id": "e16be963-457c-425d-b143-09148f12103e", + "name": "folder1", + "item": [ + { + "id": "8f23d6e7-fbf2-4e33-8ac4-05718a46d50d", + "name": "request1-1", + "request": { + "url": { + "protocol": "https", + "path": [ + "testpath", + ":pathvariable1-1", + "path", + "request1-1" + ], + "host": [ + "www", + "testdomain0", + "ie" + ], + "query": [ + { + "key": "query1-1-0", + "value": "queryvalue1-1-0" + }, + { + "key": "query1-1-1", + "value": "queryvalue1-1-1" + } + ], + "variable": [ + { + "type": "any", + "value": "{{testpathvalue}}", + "key": "pathvariable1-1" + } + ] + }, + "header": [ + { + "key": "header", + "value": "headervalue1" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "{\r\n \"key1-1\": \"value1-1\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "auth": { + "type": "apikey", + "apikey": [ + { + "type": "string", + "value": "query", + "key": "in" + }, + { + "type": "string", + "value": "123451-1", + "key": "value" + }, + { + "type": "string", + "value": "X-API-Key-1-1", + "key": "key" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "17a0d6bb-517d-49a1-aa9f-833ed804a0ae", + "type": "text/javascript", + "exec": [ + "pre-request script content 1-1" + ] + } + }, + { + "listen": "test", + "script": { + "id": "28c44e57-cf84-49bf-8f68-dd538f2fc99f", + "type": "text/javascript", + "exec": [ + "test script content 1-1" + ] + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + } + ], + "event": [] + }, + { + "id": "81211636-bbd3-4fc8-99c4-1985810a8d9c", + "name": "folder2", + "item": [ + { + "id": "8533934d-6640-4a98-b0b1-5bcce2b5a1dd", + "name": "New Folder", + "item": [ + { + "id": "25ee0c13-2d20-4443-b44e-b7fc3d4440e9", + "name": "New Folder", + "item": [ + { + "id": "a1c1a589-da65-404c-86e8-d3152e4715d6", + "name": "New Folder", + "item": [ + { + "id": "33e5361a-8221-4288-934c-b1473f0143f4", + "name": "New Folder", + "item": [ + { + "id": "971f1508-4d31-4aa6-ad7d-592cfa28904b", + "name": "New Folder", + "item": [ + { + "id": "97e92e80-2539-4507-9bb6-942a3d57f9a8", + "name": "final", + "item": [ + { + "id": "1adf853f-cef9-4602-98ee-02d56d818ebe", + "name": "requestn-1", + "request": { + "url": { + "protocol": "https", + "path": [ + "testpath", + ":pathvariablen-1", + "path", + "requestn-1" + ], + "host": [ + "www", + "testdomain0", + "ie" + ], + "query": [ + { + "key": "queryn-1", + "value": "queryvaluen-1" + } + ], + "variable": [ + { + "type": "any", + "value": "{{testpathvalue}}", + "key": "pathvariablen-1" + } + ] + }, + "header": [ + { + "key": "header", + "value": "headervalue1" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "{\r\n \"keyn-1\": \"valuen-1\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "auth": { + "type": "apikey", + "apikey": [ + { + "type": "string", + "value": "12345n-1", + "key": "value" + }, + { + "type": "string", + "value": "X-API-Key-n-1", + "key": "key" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "4fbe3403-37c8-4e8c-acff-20ef077f970d", + "type": "text/javascript", + "exec": [ + "pre-request script content n-1" + ] + } + }, + { + "listen": "test", + "script": { + "id": "7c7f1662-1c7f-42c3-be6a-3faaadb18cc4", + "type": "text/javascript", + "exec": [ + "test script content n-1" + ] + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + } + ], + "event": [] + } + ], + "event": [] + } + ], + "event": [] + } + ], + "event": [] + } + ], + "event": [] + } + ], + "event": [] + } + ], + "event": [] + }, + { + "id": "ea3bf9a5-633d-4043-aad0-4acaa7faa974", + "name": "request0-1", + "request": { + "url": { + "protocol": "https", + "path": [ + "testpath", + ":pathvariable0-1", + "path", + "request0-1" + ], + "host": [ + "www", + "testdomain0", + "ie" + ], + "query": [ + { + "key": "query0-1", + "value": "queryvalue0-1" + } + ], + "variable": [ + { + "type": "any", + "value": "{{testpathvalue}}", + "key": "pathvariable0-1" + } + ] + }, + "header": [ + { + "key": "header0-1", + "value": "headervalue0-1" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "{\r\n \"key0-1\": \"value0-1\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "auth": { + "type": "apikey", + "apikey": [ + { + "type": "string", + "value": "X-API-Key-0-1", + "key": "key" + }, + { + "type": "string", + "value": "123450-1", + "key": "value" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "5d6f1e8c-416a-482e-b96d-21d76757436b", + "type": "text/javascript", + "exec": [ + "pre-request script content 0-1" + ] + } + }, + { + "listen": "test", + "script": { + "id": "8aa8599f-a151-4fc5-b771-16cd2810a480", + "type": "text/javascript", + "exec": [ + "test script content 0-1" + ] + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + }, + { + "id": "4ad208e7-c2cd-42cc-86c1-9f6356c1f6b8", + "name": "request0-2", + "request": { + "url": { + "protocol": "https", + "path": [ + "testpath", + ":pathvariable0-2", + "path", + "request0-2" + ], + "host": [ + "www", + "testdomain0-", + "ie" + ], + "query": [ + { + "key": "query0-2", + "value": "queryvalue0-2" + } + ], + "variable": [ + { + "type": "any", + "value": "pathvalue0-2", + "key": "pathvariable0-2" + } + ] + }, + "header": [ + { + "key": "header0-2", + "value": "headervalue0-2" + } + ], + "method": "GET", + "body": { + "mode": "raw", + "raw": "{\r\n \"key0-2\": \"value0-2\"\r\n}", + "options": { + "raw": { + "language": "json" + } + } + }, + "auth": { + "type": "apikey", + "apikey": [ + { + "type": "string", + "value": "X-API-Key-0-2", + "key": "key" + }, + { + "type": "string", + "value": "123450-2", + "key": "value" + } + ] + } + }, + "response": [], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "b8816bfd-b5fd-455e-afa0-b231b0474a0a", + "type": "text/javascript", + "exec": [ + "pre-request script content 0-2" + ] + } + }, + { + "listen": "test", + "script": { + "id": "04ad861f-3464-4eae-b122-900a626ee306", + "type": "text/javascript", + "exec": [ + "test script content 0-2" + ] + } + } + ], + "protocolProfileBehavior": { + "disableBodyPruning": true + } + } + ], + "event": [ + { + "listen": "prerequest", + "script": { + "id": "445b7853-e97e-4794-8741-05ce9e2cc596", + "type": "text/javascript", + "exec": [ + "" + ] + } + }, + { + "listen": "test", + "script": { + "id": "84c38c81-4229-48f5-95d4-9bb3a73a6d76", + "type": "text/javascript", + "exec": [ + "" + ] + } + } + ], + "variable": [ + { + "type": "string", + "value": "resolvedvalue", + "key": "testpathvalue" + }, + { + "type": "string", + "value": "collectionvarvalue", + "key": "collectionvar" + } + ], + "info": { + "_postman_id": "738641d0-80bf-4ad1-92cc-b947f0bf6c56", + "name": "collection", + "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" + } +} \ No newline at end of file diff --git a/package.json b/package.json index 08e3d09..2f3239a 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "yargs": "^17.3.1" }, "bin": { - "postman-collection-url-updater": "./index.js" + "postman-collection-url-updater": "./bin/main.js" }, "files": [ "index.js", @@ -37,5 +37,21 @@ "@types/postman-collection": "^3.5.7", "jest": "^27.4.7", "shelljs": "^0.8.5" + }, + "jest": { + "coverageThreshold": { + "global": { + "branches": 80, + "functions": 80, + "lines": 80, + "statements": -10 + } + }, + "rootDir": "./", + "verbose": true, + "maxWorkers": 1, + "collectCoverageFrom": [ + "index.js" + ] } -} +} \ No newline at end of file From c8c9db89990ea8d899581b3a749a1bf83efee58e Mon Sep 17 00:00:00 2001 From: praveendvd Date: Fri, 28 Jan 2022 00:57:01 +0000 Subject: [PATCH 2/5] Updated gitignore --- .gitignore | 4 +- coverage/clover.xml | 38 - coverage/coverage-final.json | 2 - coverage/lcov-report/base.css | 224 ------ coverage/lcov-report/block-navigation.js | 87 --- .../lcov-report/block-navigation.js.html | 346 --------- .../coverage/lcov-report/index.html | 146 ---- .../coverage/lcov-report/prettify.js.html | 91 --- .../coverage/lcov-report/sorter.js.html | 673 ------------------ .../lcov-report/collection_updater/index.html | 116 --- .../collection_updater/index.js.html | 253 ------- coverage/lcov-report/favicon.png | Bin 540 -> 0 bytes coverage/lcov-report/index.html | 116 --- coverage/lcov-report/index.js.html | 268 ------- coverage/lcov-report/prettify.css | 1 - coverage/lcov-report/prettify.js | 2 - coverage/lcov-report/sort-arrow-sprite.png | Bin 209 -> 0 bytes coverage/lcov-report/sorter.js | 196 ----- coverage/lcov.info | 54 -- new_collection.json | 471 ------------ 20 files changed, 3 insertions(+), 3085 deletions(-) delete mode 100644 coverage/clover.xml delete mode 100644 coverage/coverage-final.json delete mode 100644 coverage/lcov-report/base.css delete mode 100644 coverage/lcov-report/block-navigation.js delete mode 100644 coverage/lcov-report/collection_updater/coverage/lcov-report/block-navigation.js.html delete mode 100644 coverage/lcov-report/collection_updater/coverage/lcov-report/index.html delete mode 100644 coverage/lcov-report/collection_updater/coverage/lcov-report/prettify.js.html delete mode 100644 coverage/lcov-report/collection_updater/coverage/lcov-report/sorter.js.html delete mode 100644 coverage/lcov-report/collection_updater/index.html delete mode 100644 coverage/lcov-report/collection_updater/index.js.html delete mode 100644 coverage/lcov-report/favicon.png delete mode 100644 coverage/lcov-report/index.html delete mode 100644 coverage/lcov-report/index.js.html delete mode 100644 coverage/lcov-report/prettify.css delete mode 100644 coverage/lcov-report/prettify.js delete mode 100644 coverage/lcov-report/sort-arrow-sprite.png delete mode 100644 coverage/lcov-report/sorter.js delete mode 100644 coverage/lcov.info delete mode 100644 new_collection.json diff --git a/.gitignore b/.gitignore index d2b46a7..3a1c770 100644 --- a/.gitignore +++ b/.gitignore @@ -2,4 +2,6 @@ node_modules package-lock.json __test__/collection/output __test__/collection/new_collection.json -__test__/*copy* \ No newline at end of file +__test__/*copy* +coverage +new_collection.json \ No newline at end of file diff --git a/coverage/clover.xml b/coverage/clover.xml deleted file mode 100644 index ba60a93..0000000 --- a/coverage/clover.xml +++ /dev/null @@ -1,38 +0,0 @@ - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - diff --git a/coverage/coverage-final.json b/coverage/coverage-final.json deleted file mode 100644 index fc858f3..0000000 --- a/coverage/coverage-final.json +++ /dev/null @@ -1,2 +0,0 @@ -{"D:\\MyProjects\\collection_updater\\index.js": {"path":"D:\\MyProjects\\collection_updater\\index.js","statementMap":{"0":{"start":{"line":3,"column":14},"end":{"line":3,"column":30}},"1":{"start":{"line":4,"column":9},"end":{"line":4,"column":28}},"2":{"start":{"line":5,"column":10},"end":{"line":5,"column":39}},"3":{"start":{"line":6,"column":15},"end":{"line":9,"column":5}},"4":{"start":{"line":10,"column":14},"end":{"line":16,"column":13}},"5":{"start":{"line":17,"column":11},"end":{"line":17,"column":26}},"6":{"start":{"line":18,"column":21},"end":{"line":18,"column":61}},"7":{"start":{"line":19,"column":20},"end":{"line":19,"column":73}},"8":{"start":{"line":23,"column":4},"end":{"line":45,"column":5}},"9":{"start":{"line":24,"column":8},"end":{"line":24,"column":111}},"10":{"start":{"line":26,"column":8},"end":{"line":36,"column":10}},"11":{"start":{"line":28,"column":29},"end":{"line":28,"column":68}},"12":{"start":{"line":29,"column":12},"end":{"line":29,"column":53}},"13":{"start":{"line":30,"column":30},"end":{"line":30,"column":64}},"14":{"start":{"line":32,"column":27},"end":{"line":32,"column":100}},"15":{"start":{"line":35,"column":12},"end":{"line":35,"column":61}},"16":{"start":{"line":38,"column":29},"end":{"line":38,"column":140}},"17":{"start":{"line":39,"column":8},"end":{"line":39,"column":91}},"18":{"start":{"line":40,"column":8},"end":{"line":40,"column":53}},"19":{"start":{"line":42,"column":8},"end":{"line":42,"column":48}},"20":{"start":{"line":42,"column":34},"end":{"line":42,"column":48}},"21":{"start":{"line":43,"column":8},"end":{"line":43,"column":32}},"22":{"start":{"line":44,"column":8},"end":{"line":44,"column":22}},"23":{"start":{"line":50,"column":4},"end":{"line":50,"column":64}},"24":{"start":{"line":54,"column":4},"end":{"line":54,"column":42}},"25":{"start":{"line":55,"column":26},"end":{"line":55,"column":60}},"26":{"start":{"line":56,"column":4},"end":{"line":58,"column":6}},"27":{"start":{"line":57,"column":8},"end":{"line":57,"column":84}},"28":{"start":{"line":57,"column":61},"end":{"line":57,"column":84}},"29":{"start":{"line":59,"column":4},"end":{"line":59,"column":59}},"30":{"start":{"line":62,"column":0},"end":{"line":62,"column":31}}},"fnMap":{"0":{"name":"startConvert","decl":{"start":{"line":22,"column":9},"end":{"line":22,"column":21}},"loc":{"start":{"line":22,"column":24},"end":{"line":46,"column":1}},"line":22},"1":{"name":"(anonymous_1)","decl":{"start":{"line":26,"column":37},"end":{"line":26,"column":38}},"loc":{"start":{"line":26,"column":54},"end":{"line":36,"column":9}},"line":26},"2":{"name":"urlReplacer","decl":{"start":{"line":49,"column":9},"end":{"line":49,"column":20}},"loc":{"start":{"line":49,"column":65},"end":{"line":51,"column":1}},"line":49},"3":{"name":"updateCollection","decl":{"start":{"line":53,"column":9},"end":{"line":53,"column":25}},"loc":{"start":{"line":53,"column":58},"end":{"line":60,"column":1}},"line":53},"4":{"name":"(anonymous_4)","decl":{"start":{"line":56,"column":22},"end":{"line":56,"column":23}},"loc":{"start":{"line":56,"column":47},"end":{"line":58,"column":5}},"line":56}},"branchMap":{"0":{"loc":{"start":{"line":38,"column":42},"end":{"line":38,"column":139}},"type":"cond-expr","locations":[{"start":{"line":38,"column":81},"end":{"line":38,"column":121}},{"start":{"line":38,"column":124},"end":{"line":38,"column":139}}],"line":38},"1":{"loc":{"start":{"line":42,"column":8},"end":{"line":42,"column":48}},"type":"if","locations":[{"start":{"line":42,"column":8},"end":{"line":42,"column":48}},{"start":{},"end":{}}],"line":42},"2":{"loc":{"start":{"line":57,"column":8},"end":{"line":57,"column":84}},"type":"if","locations":[{"start":{"line":57,"column":8},"end":{"line":57,"column":84}},{"start":{},"end":{}}],"line":57}},"s":{"0":15,"1":15,"2":15,"3":15,"4":15,"5":11,"6":11,"7":11,"8":11,"9":11,"10":10,"11":40,"12":40,"13":40,"14":40,"15":40,"16":10,"17":10,"18":10,"19":3,"20":2,"21":1,"22":1,"23":40,"24":40,"25":40,"26":40,"27":40,"28":2,"29":40,"30":11},"f":{"0":11,"1":40,"2":40,"3":40,"4":40},"b":{"0":[1,9],"1":[2,1],"2":[2,38]},"_coverageSchema":"1a1c01bbd47fc00a2c39e90264f33305004495a9","hash":"757b490454f7e82f52b0dad6469dd1ef0db94aea"} -} diff --git a/coverage/lcov-report/base.css b/coverage/lcov-report/base.css deleted file mode 100644 index f418035..0000000 --- a/coverage/lcov-report/base.css +++ /dev/null @@ -1,224 +0,0 @@ -body, html { - margin:0; padding: 0; - height: 100%; -} -body { - font-family: Helvetica Neue, Helvetica, Arial; - font-size: 14px; - color:#333; -} -.small { font-size: 12px; } -*, *:after, *:before { - -webkit-box-sizing:border-box; - -moz-box-sizing:border-box; - box-sizing:border-box; - } -h1 { font-size: 20px; margin: 0;} -h2 { font-size: 14px; } -pre { - font: 12px/1.4 Consolas, "Liberation Mono", Menlo, Courier, monospace; - margin: 0; - padding: 0; - -moz-tab-size: 2; - -o-tab-size: 2; - tab-size: 2; -} -a { color:#0074D9; text-decoration:none; } -a:hover { text-decoration:underline; } -.strong { font-weight: bold; } -.space-top1 { padding: 10px 0 0 0; } -.pad2y { padding: 20px 0; } -.pad1y { padding: 10px 0; } -.pad2x { padding: 0 20px; } -.pad2 { padding: 20px; } -.pad1 { padding: 10px; } -.space-left2 { padding-left:55px; } -.space-right2 { padding-right:20px; } -.center { text-align:center; } -.clearfix { display:block; } -.clearfix:after { - content:''; - display:block; - height:0; - clear:both; - visibility:hidden; - } -.fl { float: left; } -@media only screen and (max-width:640px) { - .col3 { width:100%; max-width:100%; } - .hide-mobile { display:none!important; } -} - -.quiet { - color: #7f7f7f; - color: rgba(0,0,0,0.5); -} -.quiet a { opacity: 0.7; } - -.fraction { - font-family: Consolas, 'Liberation Mono', Menlo, Courier, monospace; - font-size: 10px; - color: #555; - background: #E8E8E8; - padding: 4px 5px; - border-radius: 3px; - vertical-align: middle; -} - -div.path a:link, div.path a:visited { color: #333; } -table.coverage { - border-collapse: collapse; - margin: 10px 0 0 0; - padding: 0; -} - -table.coverage td { - margin: 0; - padding: 0; - vertical-align: top; -} -table.coverage td.line-count { - text-align: right; - padding: 0 5px 0 20px; -} -table.coverage td.line-coverage { - text-align: right; - padding-right: 10px; - min-width:20px; -} - -table.coverage td span.cline-any { - display: inline-block; - padding: 0 5px; - width: 100%; -} -.missing-if-branch { - display: inline-block; - margin-right: 5px; - border-radius: 3px; - position: relative; - padding: 0 4px; - background: #333; - color: yellow; -} - -.skip-if-branch { - display: none; - margin-right: 10px; - position: relative; - padding: 0 4px; - background: #ccc; - color: white; -} -.missing-if-branch .typ, .skip-if-branch .typ { - color: inherit !important; -} -.coverage-summary { - border-collapse: collapse; - width: 100%; -} -.coverage-summary tr { border-bottom: 1px solid #bbb; } -.keyline-all { border: 1px solid #ddd; } -.coverage-summary td, .coverage-summary th { padding: 10px; } -.coverage-summary tbody { border: 1px solid #bbb; } -.coverage-summary td { border-right: 1px solid #bbb; } -.coverage-summary td:last-child { border-right: none; } -.coverage-summary th { - text-align: left; - font-weight: normal; - white-space: nowrap; -} -.coverage-summary th.file { border-right: none !important; } -.coverage-summary th.pct { } -.coverage-summary th.pic, -.coverage-summary th.abs, -.coverage-summary td.pct, -.coverage-summary td.abs { text-align: right; } -.coverage-summary td.file { white-space: nowrap; } -.coverage-summary td.pic { min-width: 120px !important; } -.coverage-summary tfoot td { } - -.coverage-summary .sorter { - height: 10px; - width: 7px; - display: inline-block; - margin-left: 0.5em; - background: url(sort-arrow-sprite.png) no-repeat scroll 0 0 transparent; -} -.coverage-summary .sorted .sorter { - background-position: 0 -20px; -} -.coverage-summary .sorted-desc .sorter { - background-position: 0 -10px; -} -.status-line { height: 10px; } -/* yellow */ -.cbranch-no { background: yellow !important; color: #111; } -/* dark red */ -.red.solid, .status-line.low, .low .cover-fill { background:#C21F39 } -.low .chart { border:1px solid #C21F39 } -.highlighted, -.highlighted .cstat-no, .highlighted .fstat-no, .highlighted .cbranch-no{ - background: #C21F39 !important; -} -/* medium red */ -.cstat-no, .fstat-no, .cbranch-no, .cbranch-no { background:#F6C6CE } -/* light red */ -.low, .cline-no { background:#FCE1E5 } -/* light green */ -.high, .cline-yes { background:rgb(230,245,208) } -/* medium green */ -.cstat-yes { background:rgb(161,215,106) } -/* dark green */ -.status-line.high, .high .cover-fill { background:rgb(77,146,33) } -.high .chart { border:1px solid rgb(77,146,33) } -/* dark yellow (gold) */ -.status-line.medium, .medium .cover-fill { background: #f9cd0b; } -.medium .chart { border:1px solid #f9cd0b; } -/* light yellow */ -.medium { background: #fff4c2; } - -.cstat-skip { background: #ddd; color: #111; } -.fstat-skip { background: #ddd; color: #111 !important; } -.cbranch-skip { background: #ddd !important; color: #111; } - -span.cline-neutral { background: #eaeaea; } - -.coverage-summary td.empty { - opacity: .5; - padding-top: 4px; - padding-bottom: 4px; - line-height: 1; - color: #888; -} - -.cover-fill, .cover-empty { - display:inline-block; - height: 12px; -} -.chart { - line-height: 0; -} -.cover-empty { - background: white; -} -.cover-full { - border-right: none !important; -} -pre.prettyprint { - border: none !important; - padding: 0 !important; - margin: 0 !important; -} -.com { color: #999 !important; } -.ignore-none { color: #999; font-weight: normal; } - -.wrapper { - min-height: 100%; - height: auto !important; - height: 100%; - margin: 0 auto -48px; -} -.footer, .push { - height: 48px; -} diff --git a/coverage/lcov-report/block-navigation.js b/coverage/lcov-report/block-navigation.js deleted file mode 100644 index cc12130..0000000 --- a/coverage/lcov-report/block-navigation.js +++ /dev/null @@ -1,87 +0,0 @@ -/* eslint-disable */ -var jumpToCode = (function init() { - // Classes of code we would like to highlight in the file view - var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no']; - - // Elements to highlight in the file listing view - var fileListingElements = ['td.pct.low']; - - // We don't want to select elements that are direct descendants of another match - var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > ` - - // Selecter that finds elements on the page to which we can jump - var selector = - fileListingElements.join(', ') + - ', ' + - notSelector + - missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b` - - // The NodeList of matching elements - var missingCoverageElements = document.querySelectorAll(selector); - - var currentIndex; - - function toggleClass(index) { - missingCoverageElements - .item(currentIndex) - .classList.remove('highlighted'); - missingCoverageElements.item(index).classList.add('highlighted'); - } - - function makeCurrent(index) { - toggleClass(index); - currentIndex = index; - missingCoverageElements.item(index).scrollIntoView({ - behavior: 'smooth', - block: 'center', - inline: 'center' - }); - } - - function goToPrevious() { - var nextIndex = 0; - if (typeof currentIndex !== 'number' || currentIndex === 0) { - nextIndex = missingCoverageElements.length - 1; - } else if (missingCoverageElements.length > 1) { - nextIndex = currentIndex - 1; - } - - makeCurrent(nextIndex); - } - - function goToNext() { - var nextIndex = 0; - - if ( - typeof currentIndex === 'number' && - currentIndex < missingCoverageElements.length - 1 - ) { - nextIndex = currentIndex + 1; - } - - makeCurrent(nextIndex); - } - - return function jump(event) { - if ( - document.getElementById('fileSearch') === document.activeElement && - document.activeElement != null - ) { - // if we're currently focused on the search input, we don't want to navigate - return; - } - - switch (event.which) { - case 78: // n - case 74: // j - goToNext(); - break; - case 66: // b - case 75: // k - case 80: // p - goToPrevious(); - break; - } - }; -})(); -window.addEventListener('keydown', jumpToCode); diff --git a/coverage/lcov-report/collection_updater/coverage/lcov-report/block-navigation.js.html b/coverage/lcov-report/collection_updater/coverage/lcov-report/block-navigation.js.html deleted file mode 100644 index fedc18f..0000000 --- a/coverage/lcov-report/collection_updater/coverage/lcov-report/block-navigation.js.html +++ /dev/null @@ -1,346 +0,0 @@ - - - - - - Code coverage report for collection_updater/coverage/lcov-report/block-navigation.js - - - - - - - - - -
-
-

All files / collection_updater/coverage/lcov-report block-navigation.js

-
- -
- 0% - Statements - 0/30 -
- - -
- 0% - Branches - 0/19 -
- - -
- 0% - Functions - 0/6 -
- - -
- 0% - Lines - 0/30 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/* eslint-disable */
-var jumpToCode = (function init() {
-    // Classes of code we would like to highlight in the file view
-    var missingCoverageClasses = ['.cbranch-no', '.cstat-no', '.fstat-no'];
- 
-    // Elements to highlight in the file listing view
-    var fileListingElements = ['td.pct.low'];
- 
-    // We don't want to select elements that are direct descendants of another match
-    var notSelector = ':not(' + missingCoverageClasses.join('):not(') + ') > '; // becomes `:not(a):not(b) > `
- 
-    // Selecter that finds elements on the page to which we can jump
-    var selector =
-        fileListingElements.join(', ') +
-        ', ' +
-        notSelector +
-        missingCoverageClasses.join(', ' + notSelector); // becomes `:not(a):not(b) > a, :not(a):not(b) > b`
- 
-    // The NodeList of matching elements
-    var missingCoverageElements = document.querySelectorAll(selector);
- 
-    var currentIndex;
- 
-    function toggleClass(index) {
-        missingCoverageElements
-            .item(currentIndex)
-            .classList.remove('highlighted');
-        missingCoverageElements.item(index).classList.add('highlighted');
-    }
- 
-    function makeCurrent(index) {
-        toggleClass(index);
-        currentIndex = index;
-        missingCoverageElements.item(index).scrollIntoView({
-            behavior: 'smooth',
-            block: 'center',
-            inline: 'center'
-        });
-    }
- 
-    function goToPrevious() {
-        var nextIndex = 0;
-        if (typeof currentIndex !== 'number' || currentIndex === 0) {
-            nextIndex = missingCoverageElements.length - 1;
-        } else if (missingCoverageElements.length > 1) {
-            nextIndex = currentIndex - 1;
-        }
- 
-        makeCurrent(nextIndex);
-    }
- 
-    function goToNext() {
-        var nextIndex = 0;
- 
-        if (
-            typeof currentIndex === 'number' &&
-            currentIndex < missingCoverageElements.length - 1
-        ) {
-            nextIndex = currentIndex + 1;
-        }
- 
-        makeCurrent(nextIndex);
-    }
- 
-    return function jump(event) {
-        if (
-            document.getElementById('fileSearch') === document.activeElement &&
-            document.activeElement != null
-        ) {
-            // if we're currently focused on the search input, we don't want to navigate
-            return;
-        }
- 
-        switch (event.which) {
-            case 78: // n
-            case 74: // j
-                goToNext();
-                break;
-            case 66: // b
-            case 75: // k
-            case 80: // p
-                goToPrevious();
-                break;
-        }
-    };
-})();
-window.addEventListener('keydown', jumpToCode);
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/collection_updater/coverage/lcov-report/index.html b/coverage/lcov-report/collection_updater/coverage/lcov-report/index.html deleted file mode 100644 index ee7b425..0000000 --- a/coverage/lcov-report/collection_updater/coverage/lcov-report/index.html +++ /dev/null @@ -1,146 +0,0 @@ - - - - - - Code coverage report for collection_updater/coverage/lcov-report - - - - - - - - - -
-
-

All files collection_updater/coverage/lcov-report

-
- -
- 0% - Statements - 0/656 -
- - -
- 0% - Branches - 0/329 -
- - -
- 0% - Functions - 0/54 -
- - -
- 0% - Lines - 0/120 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
block-navigation.js -
-
0%0/300%0/190%0/60%0/30
prettify.js -
-
0%0/5360%0/2860%0/290%0/1
sorter.js -
-
0%0/900%0/240%0/190%0/89
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/collection_updater/coverage/lcov-report/prettify.js.html b/coverage/lcov-report/collection_updater/coverage/lcov-report/prettify.js.html deleted file mode 100644 index 08e50aa..0000000 --- a/coverage/lcov-report/collection_updater/coverage/lcov-report/prettify.js.html +++ /dev/null @@ -1,91 +0,0 @@ - - - - - - Code coverage report for collection_updater/coverage/lcov-report/prettify.js - - - - - - - - - -
-
-

All files / collection_updater/coverage/lcov-report prettify.js

-
- -
- 0% - Statements - 0/536 -
- - -
- 0% - Branches - 0/286 -
- - -
- 0% - Functions - 0/29 -
- - -
- 0% - Lines - 0/1 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3  -  - 
/* eslint-disable */
-window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.ignoreCase){ac=true}else{if(/[a-z]/i.test(ae.source.replace(/\\u[0-9a-f]{4}|\\x[0-9a-f]{2}|\\[^ux]/gi,""))){S=true;ac=false;break}}}var Y={b:8,t:9,n:10,v:11,f:12,r:13};function ab(ah){var ag=ah.charCodeAt(0);if(ag!==92){return ag}var af=ah.charAt(1);ag=Y[af];if(ag){return ag}else{if("0"<=af&&af<="7"){return parseInt(ah.substring(1),8)}else{if(af==="u"||af==="x"){return parseInt(ah.substring(2),16)}else{return ah.charCodeAt(1)}}}}function T(af){if(af<32){return(af<16?"\\x0":"\\x")+af.toString(16)}var ag=String.fromCharCode(af);if(ag==="\\"||ag==="-"||ag==="["||ag==="]"){ag="\\"+ag}return ag}function X(am){var aq=am.substring(1,am.length-1).match(new RegExp("\\\\u[0-9A-Fa-f]{4}|\\\\x[0-9A-Fa-f]{2}|\\\\[0-3][0-7]{0,2}|\\\\[0-7]{1,2}|\\\\[\\s\\S]|-|[^-\\\\]","g"));var ak=[];var af=[];var ao=aq[0]==="^";for(var ar=ao?1:0,aj=aq.length;ar<aj;++ar){var ah=aq[ar];if(/\\[bdsw]/i.test(ah)){ak.push(ah)}else{var ag=ab(ah);var al;if(ar+2<aj&&"-"===aq[ar+1]){al=ab(aq[ar+2]);ar+=2}else{al=ag}af.push([ag,al]);if(!(al<65||ag>122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;ar<af.length;++ar){var at=af[ar];if(at[0]<=ap[1]+1){ap[1]=Math.max(ap[1],at[1])}else{ai.push(ap=at)}}var an=["["];if(ao){an.push("^")}an.push.apply(an,ak);for(var ar=0;ar<ai.length;++ar){var at=ai[ar];an.push(T(at[0]));if(at[1]>at[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){an[af]=-1}}}}for(var ak=1;ak<an.length;++ak){if(-1===an[ak]){an[ak]=++ad}}for(var ak=0,am=0;ak<ah;++ak){var ag=aj[ak];if(ag==="("){++am;if(an[am]===undefined){aj[ak]="(?:"}}else{if("\\"===ag.charAt(0)){var af=+ag.substring(1);if(af&&af<=am){aj[ak]="\\"+an[am]}}}}for(var ak=0,am=0;ak<ah;++ak){if("^"===aj[ak]&&"^"!==aj[ak+1]){aj[ak]=""}}if(al.ignoreCase&&S){for(var ak=0;ak<ah;++ak){var ag=aj[ak];var ai=ag.charAt(0);if(ag.length>=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V<U;++V){var ae=Z[V];if(ae.global||ae.multiline){throw new Error(""+ae)}aa.push("(?:"+W(ae)+")")}return new RegExp(aa.join("|"),ac?"gi":"g")}function a(V){var U=/(?:^|\s)nocode(?:\s|$)/;var X=[];var T=0;var Z=[];var W=0;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=document.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Y=S&&"pre"===S.substring(0,3);function aa(ab){switch(ab.nodeType){case 1:if(U.test(ab.className)){return}for(var ae=ab.firstChild;ae;ae=ae.nextSibling){aa(ae)}var ad=ab.nodeName;if("BR"===ad||"LI"===ad){X[W]="\n";Z[W<<1]=T++;Z[(W++<<1)|1]=ab}break;case 3:case 4:var ac=ab.nodeValue;if(ac.length){if(!Y){ac=ac.replace(/[ \t\r\n]+/g," ")}else{ac=ac.replace(/\r\n?/g,"\n")}X[W]=ac;Z[W<<1]=T;T+=ac.length;Z[(W++<<1)|1]=ab}break}}aa(V);return{sourceCode:X.join("").replace(/\n$/,""),spans:Z}}function B(S,U,W,T){if(!U){return}var V={sourceCode:U,basePos:S};W(V);T.push.apply(T,V.decorations)}var v=/\S/;function o(S){var V=undefined;for(var U=S.firstChild;U;U=U.nextSibling){var T=U.nodeType;V=(T===1)?(V?S:U):(T===3)?(v.test(U.nodeValue)?S:V):V}return V===S?undefined:V}function g(U,T){var S={};var V;(function(){var ad=U.concat(T);var ah=[];var ag={};for(var ab=0,Z=ad.length;ab<Z;++ab){var Y=ad[ab];var ac=Y[3];if(ac){for(var ae=ac.length;--ae>=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae<aq;++ae){var ag=an[ae];var ap=aj[ag];var ai=void 0;var am;if(typeof ap==="string"){am=false}else{var aa=S[ag.charAt(0)];if(aa){ai=ag.match(aa[1]);ap=aa[0]}else{for(var ao=0;ao<X;++ao){aa=T[ao];ai=ag.match(aa[1]);if(ai){ap=aa[0];break}}if(!ai){ap=F}}am=ap.length>=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y<W.length;++Y){ae(W[Y])}if(ag===(ag|0)){W[0].setAttribute("value",ag)}var aa=ac.createElement("OL");aa.className="linenums";var X=Math.max(0,((ag-1))|0)||0;for(var Y=0,T=W.length;Y<T;++Y){af=W[Y];af.className="L"+((Y+X)%10);if(!af.firstChild){af.appendChild(ac.createTextNode("\xA0"))}aa.appendChild(af)}V.appendChild(aa)}function D(ac){var aj=/\bMSIE\b/.test(navigator.userAgent);var am=/\n/g;var al=ac.sourceCode;var an=al.length;var V=0;var aa=ac.spans;var T=aa.length;var ah=0;var X=ac.decorations;var Y=X.length;var Z=0;X[Y]=an;var ar,aq;for(aq=ar=0;aq<Y;){if(X[aq]!==X[aq+2]){X[ar++]=X[aq++];X[ar++]=X[aq++]}else{aq+=2}}Y=ar;for(aq=ar=0;aq<Y;){var at=X[aq];var ab=X[aq+1];var W=aq+2;while(W+2<=Y&&X[W+1]===ab){W+=2}X[ar++]=at;X[ar++]=ab;aq=W}Y=X.length=ar;var ae=null;while(ah<T){var af=aa[ah];var S=aa[ah+2]||an;var ag=X[Z];var ap=X[Z+2]||an;var W=Math.min(S,ap);var ak=aa[ah+1];var U;if(ak.nodeType!==1&&(U=al.substring(V,W))){if(aj){U=U.replace(am,"\r")}ak.nodeValue=U;var ai=ak.ownerDocument;var ao=ai.createElement("SPAN");ao.className=X[Z+1];var ad=ak.parentNode;ad.replaceChild(ao,ak);ao.appendChild(ak);if(V<S){aa[ah+1]=ak=ai.createTextNode(al.substring(W,S));ad.insertBefore(ak,ao.nextSibling)}}V=W;if(V>=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*</.test(S)?"default-markup":"default-code"}return t[T]}c(K,["default-code"]);c(g([],[[F,/^[^<?]+/],[E,/^<!\w[^>]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa<ac.length;++aa){for(var Z=0,V=ac[aa].length;Z<V;++Z){T.push(ac[aa][Z])}}ac=null;var W=Date;if(!W.now){W={now:function(){return +(new Date)}}}var X=0;var S;var ab=/\blang(?:uage)?-([\w.]+)(?!\S)/;var ae=/\bprettyprint\b/;function U(){var ag=(window.PR_SHOULD_USE_CONTINUATION?W.now()+250:Infinity);for(;X<T.length&&W.now()<ag;X++){var aj=T[X];var ai=aj.className;if(ai.indexOf("prettyprint")>=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X<T.length){setTimeout(U,250)}else{if(ad){ad()}}}U()}window.prettyPrintOne=y;window.prettyPrint=b;window.PR={createSimpleLexer:g,registerLangHandler:c,sourceDecorator:i,PR_ATTRIB_NAME:P,PR_ATTRIB_VALUE:n,PR_COMMENT:j,PR_DECLARATION:E,PR_KEYWORD:z,PR_LITERAL:G,PR_NOCODE:N,PR_PLAIN:F,PR_PUNCTUATION:L,PR_SOURCE:J,PR_STRING:C,PR_TAG:m,PR_TYPE:O}})();PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_DECLARATION,/^<!\w[^>]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^<xmp\b[^>]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^<script\b[^>]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^<script\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^<style\b[^>]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:<!--|-->)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]);
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/collection_updater/coverage/lcov-report/sorter.js.html b/coverage/lcov-report/collection_updater/coverage/lcov-report/sorter.js.html deleted file mode 100644 index 16e5606..0000000 --- a/coverage/lcov-report/collection_updater/coverage/lcov-report/sorter.js.html +++ /dev/null @@ -1,673 +0,0 @@ - - - - - - Code coverage report for collection_updater/coverage/lcov-report/sorter.js - - - - - - - - - -
-
-

All files / collection_updater/coverage/lcov-report sorter.js

-
- -
- 0% - Statements - 0/90 -
- - -
- 0% - Branches - 0/24 -
- - -
- 0% - Functions - 0/19 -
- - -
- 0% - Lines - 0/89 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62 -63 -64 -65 -66 -67 -68 -69 -70 -71 -72 -73 -74 -75 -76 -77 -78 -79 -80 -81 -82 -83 -84 -85 -86 -87 -88 -89 -90 -91 -92 -93 -94 -95 -96 -97 -98 -99 -100 -101 -102 -103 -104 -105 -106 -107 -108 -109 -110 -111 -112 -113 -114 -115 -116 -117 -118 -119 -120 -121 -122 -123 -124 -125 -126 -127 -128 -129 -130 -131 -132 -133 -134 -135 -136 -137 -138 -139 -140 -141 -142 -143 -144 -145 -146 -147 -148 -149 -150 -151 -152 -153 -154 -155 -156 -157 -158 -159 -160 -161 -162 -163 -164 -165 -166 -167 -168 -169 -170 -171 -172 -173 -174 -175 -176 -177 -178 -179 -180 -181 -182 -183 -184 -185 -186 -187 -188 -189 -190 -191 -192 -193 -194 -195 -196 -197  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
/* eslint-disable */
-var addSorting = (function() {
-    'use strict';
-    var cols,
-        currentSort = {
-            index: 0,
-            desc: false
-        };
- 
-    // returns the summary table element
-    function getTable() {
-        return document.querySelector('.coverage-summary');
-    }
-    // returns the thead element of the summary table
-    function getTableHeader() {
-        return getTable().querySelector('thead tr');
-    }
-    // returns the tbody element of the summary table
-    function getTableBody() {
-        return getTable().querySelector('tbody');
-    }
-    // returns the th element for nth column
-    function getNthColumn(n) {
-        return getTableHeader().querySelectorAll('th')[n];
-    }
- 
-    function onFilterInput() {
-        const searchValue = document.getElementById('fileSearch').value;
-        const rows = document.getElementsByTagName('tbody')[0].children;
-        for (let i = 0; i < rows.length; i++) {
-            const row = rows[i];
-            if (
-                row.textContent
-                    .toLowerCase()
-                    .includes(searchValue.toLowerCase())
-            ) {
-                row.style.display = '';
-            } else {
-                row.style.display = 'none';
-            }
-        }
-    }
- 
-    // loads the search box
-    function addSearchBox() {
-        var template = document.getElementById('filterTemplate');
-        var templateClone = template.content.cloneNode(true);
-        templateClone.getElementById('fileSearch').oninput = onFilterInput;
-        template.parentElement.appendChild(templateClone);
-    }
- 
-    // loads all columns
-    function loadColumns() {
-        var colNodes = getTableHeader().querySelectorAll('th'),
-            colNode,
-            cols = [],
-            col,
-            i;
- 
-        for (i = 0; i < colNodes.length; i += 1) {
-            colNode = colNodes[i];
-            col = {
-                key: colNode.getAttribute('data-col'),
-                sortable: !colNode.getAttribute('data-nosort'),
-                type: colNode.getAttribute('data-type') || 'string'
-            };
-            cols.push(col);
-            if (col.sortable) {
-                col.defaultDescSort = col.type === 'number';
-                colNode.innerHTML =
-                    colNode.innerHTML + '<span class="sorter"></span>';
-            }
-        }
-        return cols;
-    }
-    // attaches a data attribute to every tr element with an object
-    // of data values keyed by column name
-    function loadRowData(tableRow) {
-        var tableCols = tableRow.querySelectorAll('td'),
-            colNode,
-            col,
-            data = {},
-            i,
-            val;
-        for (i = 0; i < tableCols.length; i += 1) {
-            colNode = tableCols[i];
-            col = cols[i];
-            val = colNode.getAttribute('data-value');
-            if (col.type === 'number') {
-                val = Number(val);
-            }
-            data[col.key] = val;
-        }
-        return data;
-    }
-    // loads all row data
-    function loadData() {
-        var rows = getTableBody().querySelectorAll('tr'),
-            i;
- 
-        for (i = 0; i < rows.length; i += 1) {
-            rows[i].data = loadRowData(rows[i]);
-        }
-    }
-    // sorts the table using the data for the ith column
-    function sortByIndex(index, desc) {
-        var key = cols[index].key,
-            sorter = function(a, b) {
-                a = a.data[key];
-                b = b.data[key];
-                return a < b ? -1 : a > b ? 1 : 0;
-            },
-            finalSorter = sorter,
-            tableBody = document.querySelector('.coverage-summary tbody'),
-            rowNodes = tableBody.querySelectorAll('tr'),
-            rows = [],
-            i;
- 
-        if (desc) {
-            finalSorter = function(a, b) {
-                return -1 * sorter(a, b);
-            };
-        }
- 
-        for (i = 0; i < rowNodes.length; i += 1) {
-            rows.push(rowNodes[i]);
-            tableBody.removeChild(rowNodes[i]);
-        }
- 
-        rows.sort(finalSorter);
- 
-        for (i = 0; i < rows.length; i += 1) {
-            tableBody.appendChild(rows[i]);
-        }
-    }
-    // removes sort indicators for current column being sorted
-    function removeSortIndicators() {
-        var col = getNthColumn(currentSort.index),
-            cls = col.className;
- 
-        cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, '');
-        col.className = cls;
-    }
-    // adds sort indicators for current column being sorted
-    function addSortIndicators() {
-        getNthColumn(currentSort.index).className += currentSort.desc
-            ? ' sorted-desc'
-            : ' sorted';
-    }
-    // adds event listeners for all sorter widgets
-    function enableUI() {
-        var i,
-            el,
-            ithSorter = function ithSorter(i) {
-                var col = cols[i];
- 
-                return function() {
-                    var desc = col.defaultDescSort;
- 
-                    if (currentSort.index === i) {
-                        desc = !currentSort.desc;
-                    }
-                    sortByIndex(i, desc);
-                    removeSortIndicators();
-                    currentSort.index = i;
-                    currentSort.desc = desc;
-                    addSortIndicators();
-                };
-            };
-        for (i = 0; i < cols.length; i += 1) {
-            if (cols[i].sortable) {
-                // add the click event handler on the th so users
-                // dont have to click on those tiny arrows
-                el = getNthColumn(i).querySelector('.sorter').parentElement;
-                if (el.addEventListener) {
-                    el.addEventListener('click', ithSorter(i));
-                } else {
-                    el.attachEvent('onclick', ithSorter(i));
-                }
-            }
-        }
-    }
-    // adds sorting functionality to the UI
-    return function() {
-        if (!getTable()) {
-            return;
-        }
-        cols = loadColumns();
-        loadData();
-        addSearchBox();
-        addSortIndicators();
-        enableUI();
-    };
-})();
- 
-window.addEventListener('load', addSorting);
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/collection_updater/index.html b/coverage/lcov-report/collection_updater/index.html deleted file mode 100644 index edae1d8..0000000 --- a/coverage/lcov-report/collection_updater/index.html +++ /dev/null @@ -1,116 +0,0 @@ - - - - - - Code coverage report for collection_updater - - - - - - - - - -
-
-

All files collection_updater

-
- -
- 0% - Statements - 0/29 -
- - -
- 0% - Branches - 0/6 -
- - -
- 0% - Functions - 0/4 -
- - -
- 0% - Lines - 0/27 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
index.js -
-
0%0/290%0/60%0/40%0/27
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/collection_updater/index.js.html b/coverage/lcov-report/collection_updater/index.js.html deleted file mode 100644 index bb6af17..0000000 --- a/coverage/lcov-report/collection_updater/index.js.html +++ /dev/null @@ -1,253 +0,0 @@ - - - - - - Code coverage report for collection_updater/index.js - - - - - - - - - -
-
-

All files / collection_updater index.js

-
- -
- 0% - Statements - 0/29 -
- - -
- 0% - Branches - 0/6 -
- - -
- 0% - Functions - 0/4 -
- - -
- 0% - Lines - 0/27 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  -  - 
#! /usr/bin/env node
-let sourceCollection;
- 
-const YARGS = require('yargs'),
-    FS = require('fs-extra'),
-    SDK = require('postman-collection'),
-    DEFAULTS = {
-        replace_url_part: 'all',
-        save_as: 'root/new_<collection_name>.json',
-    },
-    OPTIONS = YARGS
-        .usage('Usage: -c "root/collection_name.json" -r "{{Baseurl}}/path1/path2" -w "{{Baseurl}}/{{path}}" -s "root/new_collection_name.json"')
-        .option('c', { alias: 'collection_path', describe: 'Path to Collection file', type: 'string', demandOption: true })
-        .option('r', { alias: 'replace_url_part', describe: 'Replaces only the matching part of the URL', type: 'string', demandOption: true })
-        .option('w', { alias: 'with_url_part', describe: 'Replaces the matching part of the URL with provided value', type: 'string', demandOption: true })
-        .option('s', { alias: 'save_as', describe: 'path to save new collection', type: 'string', demandOption: false, default: DEFAULTS.save_as })
-        .argv,
-    PATH = require('path'),
-    COLLECTIONFILE = PATH.parse(OPTIONS.collection_path).base,
-    COLLECTIONDIR = PATH.resolve(PATH.parse(OPTIONS.collection_path).dir);
- 
-try {
-    sourceCollection = new SDK.Collection(JSON.parse(FS.readFileSync(OPTIONS.collection_path).toString()));
-    //forEachItem has all request details irrespective of folder structure
-    sourceCollection.forEachItem((requestItem) => {
-        //stops path variable from resolving
-        let variables_ = requestItem.request.url.variables.all()
-        requestItem.request.url.variables.clear()
-        let currentURL_ = requestItem.request.url.toString()
- 
-        const newURL = urlReplacer(currentURL_, OPTIONS.replace_url_part, OPTIONS.with_url_part)
- 
-        //add varaibles back if required and update the collection
-        updateCollection(requestItem, variables_, newURL)
-    })
- 
-    const destination_ = PATH.resolve(OPTIONS.save_as === DEFAULTS.save_as ? `${COLLECTIONDIR}/new_${COLLECTIONFILE}` : OPTIONS.save_as)
-    FS.outputFileSync(destination_, JSON.stringify(sourceCollection.toJSON(), null, 2))
-    console.log(`File saved to: ${destination_}`)
-} catch (e) {
-    if (!e.errno === 4058) throw Error(e)
-    console.log(e.message)
-}
- 
-function urlReplacer(currentUrl, urlToReplace, urlToReplaceWith) {
-    return currentUrl.replaceAll(urlToReplace, urlToReplaceWith)
-}
- 
-function updateCollection(requestItem, variables, newURL) {
-    requestItem.request.url.update(newURL)
-    const newURLString_ = requestItem.request.url.toString()
-    variables.forEach((variableItem, index) => {
-        if (!newURLString_.includes(`:${variableItem.key}`)) delete variables[index]
-    })
-    requestItem.request.url.variables.repopulate(variables)
-}
- 
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/favicon.png b/coverage/lcov-report/favicon.png deleted file mode 100644 index 6691817834a957c938e7f09640a37a645fb31457..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 540 zcmV+%0^|LOP)wSzy{h>9elhJ=8GnBQmf?)AI(^#wDA_`!QTxaXXE&bjxo zTGCc%V|W`}Lwz0rDO*qBbGY-M@aNENIZ1rK?nOAibaC*vb%CF;I_~lkJawax%_+1J zLn(#pv_v{f0`v`Cfp6()7MB(>IoTAiQdKxgxX?VyV&KVZ7b$vn<8|Z<9$35C+G_8SH0x6Y(xB&~bmn%r}ceRwbc0000 - - - - Code coverage report for All files - - - - - - - - - -
-
-

All files

-
- -
- 100% - Statements - 31/31 -
- - -
- 100% - Branches - 6/6 -
- - -
- 100% - Functions - 5/5 -
- - -
- 100% - Lines - 29/29 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
FileStatementsBranchesFunctionsLines
index.js -
-
100%31/31100%6/6100%5/5100%29/29
-
-
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/index.js.html b/coverage/lcov-report/index.js.html deleted file mode 100644 index 9e2b6f4..0000000 --- a/coverage/lcov-report/index.js.html +++ /dev/null @@ -1,268 +0,0 @@ - - - - - - Code coverage report for index.js - - - - - - - - - -
-
-

All files index.js

-
- -
- 100% - Statements - 31/31 -
- - -
- 100% - Branches - 6/6 -
- - -
- 100% - Functions - 5/5 -
- - -
- 100% - Lines - 29/29 -
- - -
-

- Press n or j to go to the next uncovered block, b, p or k for the previous block. -

- -
-
-

-
1 -2 -3 -4 -5 -6 -7 -8 -9 -10 -11 -12 -13 -14 -15 -16 -17 -18 -19 -20 -21 -22 -23 -24 -25 -26 -27 -28 -29 -30 -31 -32 -33 -34 -35 -36 -37 -38 -39 -40 -41 -42 -43 -44 -45 -46 -47 -48 -49 -50 -51 -52 -53 -54 -55 -56 -57 -58 -59 -60 -61 -62  -  -15x -15x -15x -15x -  -  -  -15x -  -  -  -  -  -  -11x -11x -11x -  -  -  -11x -11x -  -10x -  -40x -40x -40x -  -40x -  -  -40x -  -  -10x -10x -10x -  -3x -1x -1x -  -  -  -  -  -40x -  -  -  -40x -40x -40x -40x -  -40x -  -  -11x
let sourceCollection;
- 
-const YARGS = require('yargs'),
-    FS = require('fs-extra'),
-    SDK = require('postman-collection'),
-    DEFAULTS = {
-        replace_url_part: 'all',
-        save_as: 'root/new_<collection_name>.json',
-    },
-    OPTIONS = YARGS
-        .usage('Usage: -c "root/collection_name.json" -r "{{Baseurl}}/path1/path2" -w "{{Baseurl}}/{{path}}" -s "root/new_collection_name.json"')
-        .option('c', { alias: 'collection_path', describe: 'Path to Collection file', type: 'string', demandOption: true })
-        .option('r', { alias: 'replace_url_part', describe: 'Replaces only the matching part of the URL', type: 'string', demandOption: true })
-        .option('w', { alias: 'with_url_part', describe: 'Replaces the matching part of the URL with provided value', type: 'string', demandOption: true })
-        .option('s', { alias: 'save_as', describe: 'path to save new collection', type: 'string', demandOption: false, default: DEFAULTS.save_as })
-        .argv,
-    PATH = require('path'),
-    COLLECTIONFILE = PATH.parse(OPTIONS.collection_path).base,
-    COLLECTIONDIR = PATH.resolve(PATH.parse(OPTIONS.collection_path).dir);
- 
- 
-function startConvert() {
-    try {
-        sourceCollection = new SDK.Collection(JSON.parse(FS.readFileSync(OPTIONS.collection_path).toString()));
-        //forEachItem has all request details irrespective of folder structure
-        sourceCollection.forEachItem((requestItem) => {
-            //stops path variable from resolving
-            let variables_ = requestItem.request.url.variables.all()
-            requestItem.request.url.variables.clear()
-            let currentURL_ = requestItem.request.url.toString()
- 
-            const newURL = urlReplacer(currentURL_, OPTIONS.replace_url_part, OPTIONS.with_url_part)
- 
-            //add varaibles back if required and update the collection
-            updateCollection(requestItem, variables_, newURL)
-        })
- 
-        const destination_ = PATH.resolve(OPTIONS.save_as === DEFAULTS.save_as ? `${COLLECTIONDIR}/new_${COLLECTIONFILE}` : OPTIONS.save_as)
-        FS.outputFileSync(destination_, JSON.stringify(sourceCollection.toJSON(), null, 2))
-        console.log(`File saved to: ${destination_}`)
-    } catch (e) {
-        if (!(e.errno === -4058)) throw Error(e)
-        console.error(e.message)
-        process.exit()
-    }
-}
- 
- 
-function urlReplacer(currentUrl, urlToReplace, urlToReplaceWith) {
-    return currentUrl.replaceAll(urlToReplace, urlToReplaceWith)
-}
- 
-function updateCollection(requestItem, variables, newURL) {
-    requestItem.request.url.update(newURL)
-    const newURLString_ = requestItem.request.url.toString()
-    variables.forEach((variableItem, index) => {
-        if (!newURLString_.includes(`:${variableItem.key}`)) delete variables[index]
-    })
-    requestItem.request.url.variables.repopulate(variables)
-}
- 
-module.exports = {startConvert}
- -
-
- - - - - - - - \ No newline at end of file diff --git a/coverage/lcov-report/prettify.css b/coverage/lcov-report/prettify.css deleted file mode 100644 index b317a7c..0000000 --- a/coverage/lcov-report/prettify.css +++ /dev/null @@ -1 +0,0 @@ -.pln{color:#000}@media screen{.str{color:#080}.kwd{color:#008}.com{color:#800}.typ{color:#606}.lit{color:#066}.pun,.opn,.clo{color:#660}.tag{color:#008}.atn{color:#606}.atv{color:#080}.dec,.var{color:#606}.fun{color:red}}@media print,projection{.str{color:#060}.kwd{color:#006;font-weight:bold}.com{color:#600;font-style:italic}.typ{color:#404;font-weight:bold}.lit{color:#044}.pun,.opn,.clo{color:#440}.tag{color:#006;font-weight:bold}.atn{color:#404}.atv{color:#060}}pre.prettyprint{padding:2px;border:1px solid #888}ol.linenums{margin-top:0;margin-bottom:0}li.L0,li.L1,li.L2,li.L3,li.L5,li.L6,li.L7,li.L8{list-style-type:none}li.L1,li.L3,li.L5,li.L7,li.L9{background:#eee} diff --git a/coverage/lcov-report/prettify.js b/coverage/lcov-report/prettify.js deleted file mode 100644 index b322523..0000000 --- a/coverage/lcov-report/prettify.js +++ /dev/null @@ -1,2 +0,0 @@ -/* eslint-disable */ -window.PR_SHOULD_USE_CONTINUATION=true;(function(){var h=["break,continue,do,else,for,if,return,while"];var u=[h,"auto,case,char,const,default,double,enum,extern,float,goto,int,long,register,short,signed,sizeof,static,struct,switch,typedef,union,unsigned,void,volatile"];var p=[u,"catch,class,delete,false,import,new,operator,private,protected,public,this,throw,true,try,typeof"];var l=[p,"alignof,align_union,asm,axiom,bool,concept,concept_map,const_cast,constexpr,decltype,dynamic_cast,explicit,export,friend,inline,late_check,mutable,namespace,nullptr,reinterpret_cast,static_assert,static_cast,template,typeid,typename,using,virtual,where"];var x=[p,"abstract,boolean,byte,extends,final,finally,implements,import,instanceof,null,native,package,strictfp,super,synchronized,throws,transient"];var R=[x,"as,base,by,checked,decimal,delegate,descending,dynamic,event,fixed,foreach,from,group,implicit,in,interface,internal,into,is,lock,object,out,override,orderby,params,partial,readonly,ref,sbyte,sealed,stackalloc,string,select,uint,ulong,unchecked,unsafe,ushort,var"];var r="all,and,by,catch,class,else,extends,false,finally,for,if,in,is,isnt,loop,new,no,not,null,of,off,on,or,return,super,then,true,try,unless,until,when,while,yes";var w=[p,"debugger,eval,export,function,get,null,set,undefined,var,with,Infinity,NaN"];var s="caller,delete,die,do,dump,elsif,eval,exit,foreach,for,goto,if,import,last,local,my,next,no,our,print,package,redo,require,sub,undef,unless,until,use,wantarray,while,BEGIN,END";var I=[h,"and,as,assert,class,def,del,elif,except,exec,finally,from,global,import,in,is,lambda,nonlocal,not,or,pass,print,raise,try,with,yield,False,True,None"];var f=[h,"alias,and,begin,case,class,def,defined,elsif,end,ensure,false,in,module,next,nil,not,or,redo,rescue,retry,self,super,then,true,undef,unless,until,when,yield,BEGIN,END"];var H=[h,"case,done,elif,esac,eval,fi,function,in,local,set,then,until"];var A=[l,R,w,s+I,f,H];var e=/^(DIR|FILE|vector|(de|priority_)?queue|list|stack|(const_)?iterator|(multi)?(set|map)|bitset|u?(int|float)\d*)/;var C="str";var z="kwd";var j="com";var O="typ";var G="lit";var L="pun";var F="pln";var m="tag";var E="dec";var J="src";var P="atn";var n="atv";var N="nocode";var M="(?:^^\\.?|[+-]|\\!|\\!=|\\!==|\\#|\\%|\\%=|&|&&|&&=|&=|\\(|\\*|\\*=|\\+=|\\,|\\-=|\\->|\\/|\\/=|:|::|\\;|<|<<|<<=|<=|=|==|===|>|>=|>>|>>=|>>>|>>>=|\\?|\\@|\\[|\\^|\\^=|\\^\\^|\\^\\^=|\\{|\\||\\|=|\\|\\||\\|\\|=|\\~|break|case|continue|delete|do|else|finally|instanceof|return|throw|try|typeof)\\s*";function k(Z){var ad=0;var S=false;var ac=false;for(var V=0,U=Z.length;V122)){if(!(al<65||ag>90)){af.push([Math.max(65,ag)|32,Math.min(al,90)|32])}if(!(al<97||ag>122)){af.push([Math.max(97,ag)&~32,Math.min(al,122)&~32])}}}}af.sort(function(av,au){return(av[0]-au[0])||(au[1]-av[1])});var ai=[];var ap=[NaN,NaN];for(var ar=0;arat[0]){if(at[1]+1>at[0]){an.push("-")}an.push(T(at[1]))}}an.push("]");return an.join("")}function W(al){var aj=al.source.match(new RegExp("(?:\\[(?:[^\\x5C\\x5D]|\\\\[\\s\\S])*\\]|\\\\u[A-Fa-f0-9]{4}|\\\\x[A-Fa-f0-9]{2}|\\\\[0-9]+|\\\\[^ux0-9]|\\(\\?[:!=]|[\\(\\)\\^]|[^\\x5B\\x5C\\(\\)\\^]+)","g"));var ah=aj.length;var an=[];for(var ak=0,am=0;ak=2&&ai==="["){aj[ak]=X(ag)}else{if(ai!=="\\"){aj[ak]=ag.replace(/[a-zA-Z]/g,function(ao){var ap=ao.charCodeAt(0);return"["+String.fromCharCode(ap&~32,ap|32)+"]"})}}}}return aj.join("")}var aa=[];for(var V=0,U=Z.length;V=0;){S[ac.charAt(ae)]=Y}}var af=Y[1];var aa=""+af;if(!ag.hasOwnProperty(aa)){ah.push(af);ag[aa]=null}}ah.push(/[\0-\uffff]/);V=k(ah)})();var X=T.length;var W=function(ah){var Z=ah.sourceCode,Y=ah.basePos;var ad=[Y,F];var af=0;var an=Z.match(V)||[];var aj={};for(var ae=0,aq=an.length;ae=5&&"lang-"===ap.substring(0,5);if(am&&!(ai&&typeof ai[1]==="string")){am=false;ap=J}if(!am){aj[ag]=ap}}var ab=af;af+=ag.length;if(!am){ad.push(Y+ab,ap)}else{var al=ai[1];var ak=ag.indexOf(al);var ac=ak+al.length;if(ai[2]){ac=ag.length-ai[2].length;ak=ac-al.length}var ar=ap.substring(5);B(Y+ab,ag.substring(0,ak),W,ad);B(Y+ab+ak,al,q(ar,al),ad);B(Y+ab+ac,ag.substring(ac),W,ad)}}ah.decorations=ad};return W}function i(T){var W=[],S=[];if(T.tripleQuotedStrings){W.push([C,/^(?:\'\'\'(?:[^\'\\]|\\[\s\S]|\'{1,2}(?=[^\']))*(?:\'\'\'|$)|\"\"\"(?:[^\"\\]|\\[\s\S]|\"{1,2}(?=[^\"]))*(?:\"\"\"|$)|\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$))/,null,"'\""])}else{if(T.multiLineStrings){W.push([C,/^(?:\'(?:[^\\\']|\\[\s\S])*(?:\'|$)|\"(?:[^\\\"]|\\[\s\S])*(?:\"|$)|\`(?:[^\\\`]|\\[\s\S])*(?:\`|$))/,null,"'\"`"])}else{W.push([C,/^(?:\'(?:[^\\\'\r\n]|\\.)*(?:\'|$)|\"(?:[^\\\"\r\n]|\\.)*(?:\"|$))/,null,"\"'"])}}if(T.verbatimStrings){S.push([C,/^@\"(?:[^\"]|\"\")*(?:\"|$)/,null])}var Y=T.hashComments;if(Y){if(T.cStyleComments){if(Y>1){W.push([j,/^#(?:##(?:[^#]|#(?!##))*(?:###|$)|.*)/,null,"#"])}else{W.push([j,/^#(?:(?:define|elif|else|endif|error|ifdef|include|ifndef|line|pragma|undef|warning)\b|[^\r\n]*)/,null,"#"])}S.push([C,/^<(?:(?:(?:\.\.\/)*|\/?)(?:[\w-]+(?:\/[\w-]+)+)?[\w-]+\.h|[a-z]\w*)>/,null])}else{W.push([j,/^#[^\r\n]*/,null,"#"])}}if(T.cStyleComments){S.push([j,/^\/\/[^\r\n]*/,null]);S.push([j,/^\/\*[\s\S]*?(?:\*\/|$)/,null])}if(T.regexLiterals){var X=("/(?=[^/*])(?:[^/\\x5B\\x5C]|\\x5C[\\s\\S]|\\x5B(?:[^\\x5C\\x5D]|\\x5C[\\s\\S])*(?:\\x5D|$))+/");S.push(["lang-regex",new RegExp("^"+M+"("+X+")")])}var V=T.types;if(V){S.push([O,V])}var U=(""+T.keywords).replace(/^ | $/g,"");if(U.length){S.push([z,new RegExp("^(?:"+U.replace(/[\s,]+/g,"|")+")\\b"),null])}W.push([F,/^\s+/,null," \r\n\t\xA0"]);S.push([G,/^@[a-z_$][a-z_$@0-9]*/i,null],[O,/^(?:[@_]?[A-Z]+[a-z][A-Za-z_$@0-9]*|\w+_t\b)/,null],[F,/^[a-z_$][a-z_$@0-9]*/i,null],[G,new RegExp("^(?:0x[a-f0-9]+|(?:\\d(?:_\\d+)*\\d*(?:\\.\\d*)?|\\.\\d\\+)(?:e[+\\-]?\\d+)?)[a-z]*","i"),null,"0123456789"],[F,/^\\[\s\S]?/,null],[L,/^.[^\s\w\.$@\'\"\`\/\#\\]*/,null]);return g(W,S)}var K=i({keywords:A,hashComments:true,cStyleComments:true,multiLineStrings:true,regexLiterals:true});function Q(V,ag){var U=/(?:^|\s)nocode(?:\s|$)/;var ab=/\r\n?|\n/;var ac=V.ownerDocument;var S;if(V.currentStyle){S=V.currentStyle.whiteSpace}else{if(window.getComputedStyle){S=ac.defaultView.getComputedStyle(V,null).getPropertyValue("white-space")}}var Z=S&&"pre"===S.substring(0,3);var af=ac.createElement("LI");while(V.firstChild){af.appendChild(V.firstChild)}var W=[af];function ae(al){switch(al.nodeType){case 1:if(U.test(al.className)){break}if("BR"===al.nodeName){ad(al);if(al.parentNode){al.parentNode.removeChild(al)}}else{for(var an=al.firstChild;an;an=an.nextSibling){ae(an)}}break;case 3:case 4:if(Z){var am=al.nodeValue;var aj=am.match(ab);if(aj){var ai=am.substring(0,aj.index);al.nodeValue=ai;var ah=am.substring(aj.index+aj[0].length);if(ah){var ak=al.parentNode;ak.insertBefore(ac.createTextNode(ah),al.nextSibling)}ad(al);if(!ai){al.parentNode.removeChild(al)}}}break}}function ad(ak){while(!ak.nextSibling){ak=ak.parentNode;if(!ak){return}}function ai(al,ar){var aq=ar?al.cloneNode(false):al;var ao=al.parentNode;if(ao){var ap=ai(ao,1);var an=al.nextSibling;ap.appendChild(aq);for(var am=an;am;am=an){an=am.nextSibling;ap.appendChild(am)}}return aq}var ah=ai(ak.nextSibling,0);for(var aj;(aj=ah.parentNode)&&aj.nodeType===1;){ah=aj}W.push(ah)}for(var Y=0;Y=S){ah+=2}if(V>=ap){Z+=2}}}var t={};function c(U,V){for(var S=V.length;--S>=0;){var T=V[S];if(!t.hasOwnProperty(T)){t[T]=U}else{if(window.console){console.warn("cannot override language handler %s",T)}}}}function q(T,S){if(!(T&&t.hasOwnProperty(T))){T=/^\s*]*(?:>|$)/],[j,/^<\!--[\s\S]*?(?:-\->|$)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],[L,/^(?:<[%?]|[%?]>)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i]]),["default-markup","htm","html","mxml","xhtml","xml","xsl"]);c(g([[F,/^[\s]+/,null," \t\r\n"],[n,/^(?:\"[^\"]*\"?|\'[^\']*\'?)/,null,"\"'"]],[[m,/^^<\/?[a-z](?:[\w.:-]*\w)?|\/?>$/i],[P,/^(?!style[\s=]|on)[a-z](?:[\w:-]*\w)?/i],["lang-uq.val",/^=\s*([^>\'\"\s]*(?:[^>\'\"\s\/]|\/(?=\s)))/],[L,/^[=<>\/]+/],["lang-js",/^on\w+\s*=\s*\"([^\"]+)\"/i],["lang-js",/^on\w+\s*=\s*\'([^\']+)\'/i],["lang-js",/^on\w+\s*=\s*([^\"\'>\s]+)/i],["lang-css",/^style\s*=\s*\"([^\"]+)\"/i],["lang-css",/^style\s*=\s*\'([^\']+)\'/i],["lang-css",/^style\s*=\s*([^\"\'>\s]+)/i]]),["in.tag"]);c(g([],[[n,/^[\s\S]+/]]),["uq.val"]);c(i({keywords:l,hashComments:true,cStyleComments:true,types:e}),["c","cc","cpp","cxx","cyc","m"]);c(i({keywords:"null,true,false"}),["json"]);c(i({keywords:R,hashComments:true,cStyleComments:true,verbatimStrings:true,types:e}),["cs"]);c(i({keywords:x,cStyleComments:true}),["java"]);c(i({keywords:H,hashComments:true,multiLineStrings:true}),["bsh","csh","sh"]);c(i({keywords:I,hashComments:true,multiLineStrings:true,tripleQuotedStrings:true}),["cv","py"]);c(i({keywords:s,hashComments:true,multiLineStrings:true,regexLiterals:true}),["perl","pl","pm"]);c(i({keywords:f,hashComments:true,multiLineStrings:true,regexLiterals:true}),["rb"]);c(i({keywords:w,cStyleComments:true,regexLiterals:true}),["js"]);c(i({keywords:r,hashComments:3,cStyleComments:true,multilineStrings:true,tripleQuotedStrings:true,regexLiterals:true}),["coffee"]);c(g([],[[C,/^[\s\S]+/]]),["regex"]);function d(V){var U=V.langExtension;try{var S=a(V.sourceNode);var T=S.sourceCode;V.sourceCode=T;V.spans=S.spans;V.basePos=0;q(U,T)(V);D(V)}catch(W){if("console" in window){console.log(W&&W.stack?W.stack:W)}}}function y(W,V,U){var S=document.createElement("PRE");S.innerHTML=W;if(U){Q(S,U)}var T={langExtension:V,numberLines:U,sourceNode:S};d(T);return S.innerHTML}function b(ad){function Y(af){return document.getElementsByTagName(af)}var ac=[Y("pre"),Y("code"),Y("xmp")];var T=[];for(var aa=0;aa=0){var ah=ai.match(ab);var am;if(!ah&&(am=o(aj))&&"CODE"===am.tagName){ah=am.className.match(ab)}if(ah){ah=ah[1]}var al=false;for(var ak=aj.parentNode;ak;ak=ak.parentNode){if((ak.tagName==="pre"||ak.tagName==="code"||ak.tagName==="xmp")&&ak.className&&ak.className.indexOf("prettyprint")>=0){al=true;break}}if(!al){var af=aj.className.match(/\blinenums\b(?::(\d+))?/);af=af?af[1]&&af[1].length?+af[1]:true:false;if(af){Q(aj,af)}S={langExtension:ah,sourceNode:aj,numberLines:af};d(S)}}}if(X]*(?:>|$)/],[PR.PR_COMMENT,/^<\!--[\s\S]*?(?:-\->|$)/],[PR.PR_PUNCTUATION,/^(?:<[%?]|[%?]>)/],["lang-",/^<\?([\s\S]+?)(?:\?>|$)/],["lang-",/^<%([\s\S]+?)(?:%>|$)/],["lang-",/^]*>([\s\S]+?)<\/xmp\b[^>]*>/i],["lang-handlebars",/^]*type\s*=\s*['"]?text\/x-handlebars-template['"]?\b[^>]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-js",/^]*>([\s\S]*?)(<\/script\b[^>]*>)/i],["lang-css",/^]*>([\s\S]*?)(<\/style\b[^>]*>)/i],["lang-in.tag",/^(<\/?[a-z][^<>]*>)/i],[PR.PR_DECLARATION,/^{{[#^>/]?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{&?\s*[\w.][^}]*}}/],[PR.PR_DECLARATION,/^{{{>?\s*[\w.][^}]*}}}/],[PR.PR_COMMENT,/^{{![^}]*}}/]]),["handlebars","hbs"]);PR.registerLangHandler(PR.createSimpleLexer([[PR.PR_PLAIN,/^[ \t\r\n\f]+/,null," \t\r\n\f"]],[[PR.PR_STRING,/^\"(?:[^\n\r\f\\\"]|\\(?:\r\n?|\n|\f)|\\[\s\S])*\"/,null],[PR.PR_STRING,/^\'(?:[^\n\r\f\\\']|\\(?:\r\n?|\n|\f)|\\[\s\S])*\'/,null],["lang-css-str",/^url\(([^\)\"\']*)\)/i],[PR.PR_KEYWORD,/^(?:url|rgb|\!important|@import|@page|@media|@charset|inherit)(?=[^\-\w]|$)/i,null],["lang-css-kw",/^(-?(?:[_a-z]|(?:\\[0-9a-f]+ ?))(?:[_a-z0-9\-]|\\(?:\\[0-9a-f]+ ?))*)\s*:/i],[PR.PR_COMMENT,/^\/\*[^*]*\*+(?:[^\/*][^*]*\*+)*\//],[PR.PR_COMMENT,/^(?:)/],[PR.PR_LITERAL,/^(?:\d+|\d*\.\d+)(?:%|[a-z]+)?/i],[PR.PR_LITERAL,/^#(?:[0-9a-f]{3}){1,2}/i],[PR.PR_PLAIN,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i],[PR.PR_PUNCTUATION,/^[^\s\w\'\"]+/]]),["css"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_KEYWORD,/^-?(?:[_a-z]|(?:\\[\da-f]+ ?))(?:[_a-z\d\-]|\\(?:\\[\da-f]+ ?))*/i]]),["css-kw"]);PR.registerLangHandler(PR.createSimpleLexer([],[[PR.PR_STRING,/^[^\)\"\']+/]]),["css-str"]); diff --git a/coverage/lcov-report/sort-arrow-sprite.png b/coverage/lcov-report/sort-arrow-sprite.png deleted file mode 100644 index 03f704a609c6fd0dbfdac63466a7d7c958b5cbf3..0000000000000000000000000000000000000000 GIT binary patch literal 0 HcmV?d00001 literal 209 zcmeAS@N?(olHy`uVBq!ia0vp^>_9Bd!3HEZxJ@+%Qj#UE5hcO-X(i=}MX3yqDfvmM z3ZA)%>8U}fi7AzZCsS>Jii$m5978H@?Fn+^JD|Y9yzj{W`447Gxa{7*dM7nnnD-Lb z6^}Hx2)'; - } - } - return cols; - } - // attaches a data attribute to every tr element with an object - // of data values keyed by column name - function loadRowData(tableRow) { - var tableCols = tableRow.querySelectorAll('td'), - colNode, - col, - data = {}, - i, - val; - for (i = 0; i < tableCols.length; i += 1) { - colNode = tableCols[i]; - col = cols[i]; - val = colNode.getAttribute('data-value'); - if (col.type === 'number') { - val = Number(val); - } - data[col.key] = val; - } - return data; - } - // loads all row data - function loadData() { - var rows = getTableBody().querySelectorAll('tr'), - i; - - for (i = 0; i < rows.length; i += 1) { - rows[i].data = loadRowData(rows[i]); - } - } - // sorts the table using the data for the ith column - function sortByIndex(index, desc) { - var key = cols[index].key, - sorter = function(a, b) { - a = a.data[key]; - b = b.data[key]; - return a < b ? -1 : a > b ? 1 : 0; - }, - finalSorter = sorter, - tableBody = document.querySelector('.coverage-summary tbody'), - rowNodes = tableBody.querySelectorAll('tr'), - rows = [], - i; - - if (desc) { - finalSorter = function(a, b) { - return -1 * sorter(a, b); - }; - } - - for (i = 0; i < rowNodes.length; i += 1) { - rows.push(rowNodes[i]); - tableBody.removeChild(rowNodes[i]); - } - - rows.sort(finalSorter); - - for (i = 0; i < rows.length; i += 1) { - tableBody.appendChild(rows[i]); - } - } - // removes sort indicators for current column being sorted - function removeSortIndicators() { - var col = getNthColumn(currentSort.index), - cls = col.className; - - cls = cls.replace(/ sorted$/, '').replace(/ sorted-desc$/, ''); - col.className = cls; - } - // adds sort indicators for current column being sorted - function addSortIndicators() { - getNthColumn(currentSort.index).className += currentSort.desc - ? ' sorted-desc' - : ' sorted'; - } - // adds event listeners for all sorter widgets - function enableUI() { - var i, - el, - ithSorter = function ithSorter(i) { - var col = cols[i]; - - return function() { - var desc = col.defaultDescSort; - - if (currentSort.index === i) { - desc = !currentSort.desc; - } - sortByIndex(i, desc); - removeSortIndicators(); - currentSort.index = i; - currentSort.desc = desc; - addSortIndicators(); - }; - }; - for (i = 0; i < cols.length; i += 1) { - if (cols[i].sortable) { - // add the click event handler on the th so users - // dont have to click on those tiny arrows - el = getNthColumn(i).querySelector('.sorter').parentElement; - if (el.addEventListener) { - el.addEventListener('click', ithSorter(i)); - } else { - el.attachEvent('onclick', ithSorter(i)); - } - } - } - } - // adds sorting functionality to the UI - return function() { - if (!getTable()) { - return; - } - cols = loadColumns(); - loadData(); - addSearchBox(); - addSortIndicators(); - enableUI(); - }; -})(); - -window.addEventListener('load', addSorting); diff --git a/coverage/lcov.info b/coverage/lcov.info deleted file mode 100644 index 4e3d3cb..0000000 --- a/coverage/lcov.info +++ /dev/null @@ -1,54 +0,0 @@ -TN: -SF:index.js -FN:22,startConvert -FN:26,(anonymous_1) -FN:49,urlReplacer -FN:53,updateCollection -FN:56,(anonymous_4) -FNF:5 -FNH:5 -FNDA:11,startConvert -FNDA:40,(anonymous_1) -FNDA:40,urlReplacer -FNDA:40,updateCollection -FNDA:40,(anonymous_4) -DA:3,15 -DA:4,15 -DA:5,15 -DA:6,15 -DA:10,15 -DA:17,11 -DA:18,11 -DA:19,11 -DA:23,11 -DA:24,11 -DA:26,10 -DA:28,40 -DA:29,40 -DA:30,40 -DA:32,40 -DA:35,40 -DA:38,10 -DA:39,10 -DA:40,10 -DA:42,3 -DA:43,1 -DA:44,1 -DA:50,40 -DA:54,40 -DA:55,40 -DA:56,40 -DA:57,40 -DA:59,40 -DA:62,11 -LF:29 -LH:29 -BRDA:38,0,0,1 -BRDA:38,0,1,9 -BRDA:42,1,0,2 -BRDA:42,1,1,1 -BRDA:57,2,0,2 -BRDA:57,2,1,38 -BRF:6 -BRH:6 -end_of_record diff --git a/new_collection.json b/new_collection.json deleted file mode 100644 index ef32659..0000000 --- a/new_collection.json +++ /dev/null @@ -1,471 +0,0 @@ -{ - "_": { - "postman_id": "738641d0-80bf-4ad1-92cc-b947f0bf6c56" - }, - "item": [ - { - "id": "e16be963-457c-425d-b143-09148f12103e", - "name": "folder1", - "item": [ - { - "id": "8f23d6e7-fbf2-4e33-8ac4-05718a46d50d", - "name": "request1-1", - "request": { - "url": { - "protocol": "https", - "path": [ - "testpath", - ":pathvariable1-1", - "path", - "request1-1" - ], - "host": [ - "www", - "testdomain0", - "ie" - ], - "query": [ - { - "key": "query1-1-0", - "value": "queryvalue1-1-0" - }, - { - "key": "query1-1-1", - "value": "queryvalue1-1-1" - } - ], - "variable": [ - { - "type": "any", - "value": "{{testpathvalue}}", - "key": "pathvariable1-1" - } - ] - }, - "header": [ - { - "key": "header", - "value": "headervalue1" - } - ], - "method": "GET", - "body": { - "mode": "raw", - "raw": "{\r\n \"key1-1\": \"value1-1\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "auth": { - "type": "apikey", - "apikey": [ - { - "type": "string", - "value": "query", - "key": "in" - }, - { - "type": "string", - "value": "123451-1", - "key": "value" - }, - { - "type": "string", - "value": "X-API-Key-1-1", - "key": "key" - } - ] - } - }, - "response": [], - "event": [ - { - "listen": "prerequest", - "script": { - "id": "17a0d6bb-517d-49a1-aa9f-833ed804a0ae", - "type": "text/javascript", - "exec": [ - "pre-request script content 1-1" - ] - } - }, - { - "listen": "test", - "script": { - "id": "28c44e57-cf84-49bf-8f68-dd538f2fc99f", - "type": "text/javascript", - "exec": [ - "test script content 1-1" - ] - } - } - ], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - } - ], - "event": [] - }, - { - "id": "81211636-bbd3-4fc8-99c4-1985810a8d9c", - "name": "folder2", - "item": [ - { - "id": "8533934d-6640-4a98-b0b1-5bcce2b5a1dd", - "name": "New Folder", - "item": [ - { - "id": "25ee0c13-2d20-4443-b44e-b7fc3d4440e9", - "name": "New Folder", - "item": [ - { - "id": "a1c1a589-da65-404c-86e8-d3152e4715d6", - "name": "New Folder", - "item": [ - { - "id": "33e5361a-8221-4288-934c-b1473f0143f4", - "name": "New Folder", - "item": [ - { - "id": "971f1508-4d31-4aa6-ad7d-592cfa28904b", - "name": "New Folder", - "item": [ - { - "id": "97e92e80-2539-4507-9bb6-942a3d57f9a8", - "name": "final", - "item": [ - { - "id": "1adf853f-cef9-4602-98ee-02d56d818ebe", - "name": "requestn-1", - "request": { - "url": { - "protocol": "https", - "path": [ - "testpath", - ":pathvariablen-1", - "path", - "requestn-1" - ], - "host": [ - "www", - "testdomain0", - "ie" - ], - "query": [ - { - "key": "queryn-1", - "value": "queryvaluen-1" - } - ], - "variable": [ - { - "type": "any", - "value": "{{testpathvalue}}", - "key": "pathvariablen-1" - } - ] - }, - "header": [ - { - "key": "header", - "value": "headervalue1" - } - ], - "method": "GET", - "body": { - "mode": "raw", - "raw": "{\r\n \"keyn-1\": \"valuen-1\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "auth": { - "type": "apikey", - "apikey": [ - { - "type": "string", - "value": "12345n-1", - "key": "value" - }, - { - "type": "string", - "value": "X-API-Key-n-1", - "key": "key" - } - ] - } - }, - "response": [], - "event": [ - { - "listen": "prerequest", - "script": { - "id": "4fbe3403-37c8-4e8c-acff-20ef077f970d", - "type": "text/javascript", - "exec": [ - "pre-request script content n-1" - ] - } - }, - { - "listen": "test", - "script": { - "id": "7c7f1662-1c7f-42c3-be6a-3faaadb18cc4", - "type": "text/javascript", - "exec": [ - "test script content n-1" - ] - } - } - ], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - } - ], - "event": [] - } - ], - "event": [] - } - ], - "event": [] - } - ], - "event": [] - } - ], - "event": [] - } - ], - "event": [] - } - ], - "event": [] - }, - { - "id": "ea3bf9a5-633d-4043-aad0-4acaa7faa974", - "name": "request0-1", - "request": { - "url": { - "protocol": "https", - "path": [ - "testpath", - ":pathvariable0-1", - "path", - "request0-1" - ], - "host": [ - "www", - "testdomain0", - "ie" - ], - "query": [ - { - "key": "query0-1", - "value": "queryvalue0-1" - } - ], - "variable": [ - { - "type": "any", - "value": "{{testpathvalue}}", - "key": "pathvariable0-1" - } - ] - }, - "header": [ - { - "key": "header0-1", - "value": "headervalue0-1" - } - ], - "method": "GET", - "body": { - "mode": "raw", - "raw": "{\r\n \"key0-1\": \"value0-1\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "auth": { - "type": "apikey", - "apikey": [ - { - "type": "string", - "value": "X-API-Key-0-1", - "key": "key" - }, - { - "type": "string", - "value": "123450-1", - "key": "value" - } - ] - } - }, - "response": [], - "event": [ - { - "listen": "prerequest", - "script": { - "id": "5d6f1e8c-416a-482e-b96d-21d76757436b", - "type": "text/javascript", - "exec": [ - "pre-request script content 0-1" - ] - } - }, - { - "listen": "test", - "script": { - "id": "8aa8599f-a151-4fc5-b771-16cd2810a480", - "type": "text/javascript", - "exec": [ - "test script content 0-1" - ] - } - } - ], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - }, - { - "id": "4ad208e7-c2cd-42cc-86c1-9f6356c1f6b8", - "name": "request0-2", - "request": { - "url": { - "protocol": "https", - "path": [ - "testpath", - ":pathvariable0-2", - "path", - "request0-2" - ], - "host": [ - "www", - "testdomain0-", - "ie" - ], - "query": [ - { - "key": "query0-2", - "value": "queryvalue0-2" - } - ], - "variable": [ - { - "type": "any", - "value": "pathvalue0-2", - "key": "pathvariable0-2" - } - ] - }, - "header": [ - { - "key": "header0-2", - "value": "headervalue0-2" - } - ], - "method": "GET", - "body": { - "mode": "raw", - "raw": "{\r\n \"key0-2\": \"value0-2\"\r\n}", - "options": { - "raw": { - "language": "json" - } - } - }, - "auth": { - "type": "apikey", - "apikey": [ - { - "type": "string", - "value": "X-API-Key-0-2", - "key": "key" - }, - { - "type": "string", - "value": "123450-2", - "key": "value" - } - ] - } - }, - "response": [], - "event": [ - { - "listen": "prerequest", - "script": { - "id": "b8816bfd-b5fd-455e-afa0-b231b0474a0a", - "type": "text/javascript", - "exec": [ - "pre-request script content 0-2" - ] - } - }, - { - "listen": "test", - "script": { - "id": "04ad861f-3464-4eae-b122-900a626ee306", - "type": "text/javascript", - "exec": [ - "test script content 0-2" - ] - } - } - ], - "protocolProfileBehavior": { - "disableBodyPruning": true - } - } - ], - "event": [ - { - "listen": "prerequest", - "script": { - "id": "445b7853-e97e-4794-8741-05ce9e2cc596", - "type": "text/javascript", - "exec": [ - "" - ] - } - }, - { - "listen": "test", - "script": { - "id": "84c38c81-4229-48f5-95d4-9bb3a73a6d76", - "type": "text/javascript", - "exec": [ - "" - ] - } - } - ], - "variable": [ - { - "type": "string", - "value": "resolvedvalue", - "key": "testpathvalue" - }, - { - "type": "string", - "value": "collectionvarvalue", - "key": "collectionvar" - } - ], - "info": { - "_postman_id": "738641d0-80bf-4ad1-92cc-b947f0bf6c56", - "name": "collection", - "schema": "https://schema.getpostman.com/json/collection/v2.1.0/collection.json" - } -} \ No newline at end of file From 7924332dddec224d773d75dfd9f707b032758f5a Mon Sep 17 00:00:00 2001 From: praveendvd Date: Fri, 28 Jan 2022 10:04:51 +0000 Subject: [PATCH 3/5] Updated tests --- .../__snapshots__/test-cli-unit.test.js.snap | 32 ------------------- __test__/test-cli-unit.test.js | 10 +++--- 2 files changed, 5 insertions(+), 37 deletions(-) diff --git a/__test__/__snapshots__/test-cli-unit.test.js.snap b/__test__/__snapshots__/test-cli-unit.test.js.snap index f1ee03f..6b6e1f1 100644 --- a/__test__/__snapshots__/test-cli-unit.test.js.snap +++ b/__test__/__snapshots__/test-cli-unit.test.js.snap @@ -50,22 +50,6 @@ exports[`Validate index.js unit tests Validate cli output messages Should show f exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with custom path 5`] = `[MockFunction]`; -exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with custom path 6`] = ` -[MockFunction] { - "calls": Array [ - Array [ - "File saved to: D:\\\\MyProjects\\\\collection_updater\\\\new_collection.json", - ], - ], - "results": Array [ - Object { - "type": "return", - "value": undefined, - }, - ], -} -`; - exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with default path 1`] = `[MockFunction]`; exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with default path 2`] = `[MockFunction]`; @@ -76,22 +60,6 @@ exports[`Validate index.js unit tests Validate cli output messages Should show f exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with default path 5`] = `[MockFunction]`; -exports[`Validate index.js unit tests Validate cli output messages Should show file saved message correctly with default path 6`] = ` -[MockFunction] { - "calls": Array [ - Array [ - "File saved to: D:\\\\MyProjects\\\\collection_updater\\\\__test__\\\\collection\\\\new_collection.json", - ], - ], - "results": Array [ - Object { - "type": "return", - "value": undefined, - }, - ], -} -`; - exports[`Validate index.js unit tests Validate cli output messages Should show help if -c argument is missing 1`] = `"exit"`; exports[`Validate index.js unit tests Validate cli output messages Should show help if -c argument is missing 2`] = ` diff --git a/__test__/test-cli-unit.test.js b/__test__/test-cli-unit.test.js index 47202b6..2b68918 100644 --- a/__test__/test-cli-unit.test.js +++ b/__test__/test-cli-unit.test.js @@ -1,3 +1,5 @@ +const path = require('path'); + const exec = require('shelljs').exec, sdk = require('postman-collection'), fs = require('fs'), @@ -98,12 +100,11 @@ describe('Validate index.js unit tests', () => { expect(mockConsoleError).not.toBeCalled(); expect(mockProcessExit).toMatchSnapshot(); expect(mockConsoleError).toMatchSnapshot(); - expect(mockConsoleLog).toBeCalled(); - expect(mockConsoleLog).toMatchSnapshot(); + expect(mockConsoleLog).toBeCalledWith(`File saved to: ${path.resolve('./__test__/collection/new_collection.json')}`); }); it('Should show file saved message correctly with custom path', async () => { - resetAndReimportUrlUpdator({ c: "__test__/collection/collection.json", r: "{{baseURL}}/{{path}}", w: "{{baseURL}}/{{path}}", s: "new_collection.json", p: undefined }); + resetAndReimportUrlUpdator({ c: "__test__/collection/collection.json", r: "{{baseURL}}/{{path}}", w: "{{baseURL}}/{{path}}", s: "__test__/collection/output/new_collection.json", p: undefined }); postman_url_updater = require('../index.js') expect(mockProcessExit).not.toBeCalled(); expect(mockConsoleError).not.toBeCalled(); @@ -117,8 +118,7 @@ describe('Validate index.js unit tests', () => { expect(mockConsoleError).not.toBeCalled(); expect(mockProcessExit).toMatchSnapshot(); expect(mockConsoleError).toMatchSnapshot(); - expect(mockConsoleLog).toBeCalled(); - expect(mockConsoleLog).toMatchSnapshot(); + expect(mockConsoleLog).toBeCalledWith(`File saved to: ${path.resolve('./__test__/collection/output/new_collection.json')}`); }); it('Should throw error if exception thrown doesnt contain errono 4058', async () => { From dc8a2697b5c95dc6b58fdae7affc7d3d4a953618 Mon Sep 17 00:00:00 2001 From: praveendvd <45095911+praveendvd@users.noreply.github.com> Date: Fri, 28 Jan 2022 10:09:14 +0000 Subject: [PATCH 4/5] Update changeValidator.yml --- .github/workflows/changeValidator.yml | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/.github/workflows/changeValidator.yml b/.github/workflows/changeValidator.yml index 1876ebf..2b9133d 100644 --- a/.github/workflows/changeValidator.yml +++ b/.github/workflows/changeValidator.yml @@ -23,8 +23,8 @@ jobs: node-version: 16 - name: Setup project run: npm i - - name: Run unit tests - run: npm test + - name: Run unit tests and system test + run: npm test -- --coverage windows: runs-on: windows-latest steps: @@ -36,8 +36,8 @@ jobs: node-version: 16 - name: Setup project run: npm i - - name: Run unit tests - run: npm test + - name: Run unit tests and system test + run: npm test -- --coverage mac: runs-on: macos-latest steps: @@ -49,5 +49,5 @@ jobs: node-version: 16 - name: Setup project run: npm i - - name: Run unit tests - run: npm test + - name: Run unit tests and system test + run: npm test -- --coverage From bd48ee3b3d38a3a5e7623c93cb905be7a4525d70 Mon Sep 17 00:00:00 2001 From: praveendvd Date: Fri, 28 Jan 2022 11:09:22 +0000 Subject: [PATCH 5/5] Added covergae --- __test__/__snapshots__/test-cli-unit.test.js.snap | 4 +--- __test__/__snapshots__/test-cli.test.js.snap | 2 +- __test__/test-cli-unit.test.js | 10 +--------- __test__/test-cli.test.js | 2 +- index.js | 2 +- 5 files changed, 5 insertions(+), 15 deletions(-) diff --git a/__test__/__snapshots__/test-cli-unit.test.js.snap b/__test__/__snapshots__/test-cli-unit.test.js.snap index 6b6e1f1..c3ac289 100644 --- a/__test__/__snapshots__/test-cli-unit.test.js.snap +++ b/__test__/__snapshots__/test-cli-unit.test.js.snap @@ -300,6 +300,4 @@ Options: exports[`Validate index.js unit tests Validate cli output messages Should show help if arguments are missing 4`] = `[MockFunction]`; -exports[`Validate index.js unit tests Validate cli output messages Should throw error if exception thrown doesnt contain errono 4058 1`] = `"Error: Custom error"`; - -exports[`Validate index.js unit tests Validate cli output messages Should throw error if exception thrown doesnt contain errono property 1`] = `"Error"`; +exports[`Validate index.js unit tests Validate cli output messages Should throw error if exception thrown doesnt contain error code ENOENT 1`] = `"Error: Custom error"`; diff --git a/__test__/__snapshots__/test-cli.test.js.snap b/__test__/__snapshots__/test-cli.test.js.snap index 23d8148..e88bbe3 100644 --- a/__test__/__snapshots__/test-cli.test.js.snap +++ b/__test__/__snapshots__/test-cli.test.js.snap @@ -22,7 +22,7 @@ Options: -s, --save_as path to save new collection [string] [default: \\"root/new_.json\\"] -Missing required arguments: c, r +Missing required argument: c " `; diff --git a/__test__/test-cli-unit.test.js b/__test__/test-cli-unit.test.js index 2b68918..fcf5ce4 100644 --- a/__test__/test-cli-unit.test.js +++ b/__test__/test-cli-unit.test.js @@ -121,21 +121,13 @@ describe('Validate index.js unit tests', () => { expect(mockConsoleLog).toBeCalledWith(`File saved to: ${path.resolve('./__test__/collection/output/new_collection.json')}`); }); - it('Should throw error if exception thrown doesnt contain errono 4058', async () => { + it('Should throw error if exception thrown doesnt contain error code ENOENT', async () => { resetAndReimportUrlUpdator({ c: "__test__/collection/collection.json", r: "{{baseURL}}/{{path}}", w: "{{baseURL}}/{{path}}", s: "new_collection.json", p: undefined }); postman_url_updater = require('../index.js') jest.clearAllMocks() mockConsoleLog.mockImplementation(() => { throw new CustomError(256) }); expect(postman_url_updater.startConvert).toThrowErrorMatchingSnapshot() }); - - it('Should throw error if exception thrown doesnt contain errono property', async () => { - resetAndReimportUrlUpdator({ c: "__test__/collection/collection.json", r: "{{baseURL}}/{{path}}", w: "{{baseURL}}/{{path}}", s: "new_collection.json", p: undefined }); - postman_url_updater = require('../index.js') - jest.clearAllMocks() - mockConsoleLog.mockImplementation(() => { throw new Error() }); - expect(postman_url_updater.startConvert).toThrowErrorMatchingSnapshot() - }); }) describe('Validate collection changes', () => { diff --git a/__test__/test-cli.test.js b/__test__/test-cli.test.js index 9f08c25..8bd4dc0 100644 --- a/__test__/test-cli.test.js +++ b/__test__/test-cli.test.js @@ -10,7 +10,7 @@ describe('Validate index.js system test', () => { }); it('Should show help if -c argument is missing', async () => { - const commandResponse = exec('node "bin/main.js" -w "{{baseURL}}/{{path}}" -s "new_collection.json"', { silent: true }); + const commandResponse = exec('node "bin/main.js" -r "test" -w "{{baseURL}}/{{path}}" -s "new_collection.json"', { silent: true }); expect(commandResponse.stderr).toMatchSnapshot(); expect(commandResponse.stdout).toMatchSnapshot(); }); diff --git a/index.js b/index.js index 5dcf684..7e869e1 100644 --- a/index.js +++ b/index.js @@ -39,7 +39,7 @@ function startConvert() { FS.outputFileSync(destination_, JSON.stringify(sourceCollection.toJSON(), null, 2)) console.log(`File saved to: ${destination_}`) } catch (e) { - if (!(e.errno === -4058)) throw Error(e) + if (!(e.code === 'ENOENT')) throw Error(e) console.error(e.message) process.exit() }