UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

543 lines • 39.9 kB
"use strict"; var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) { if (k2 === undefined) k2 = k; var desc = Object.getOwnPropertyDescriptor(m, k); if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) { desc = { enumerable: true, get: function() { return m[k]; } }; } Object.defineProperty(o, k2, desc); }) : (function(o, m, k, k2) { if (k2 === undefined) k2 = k; o[k2] = m[k]; })); var __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) { Object.defineProperty(o, "default", { enumerable: true, value: v }); }) : function(o, v) { o["default"] = v; }); var __decorate = (this && this.__decorate) || function (decorators, target, key, desc) { var c = arguments.length, r = c < 3 ? target : desc === null ? desc = Object.getOwnPropertyDescriptor(target, key) : desc, d; if (typeof Reflect === "object" && typeof Reflect.decorate === "function") r = Reflect.decorate(decorators, target, key, desc); else for (var i = decorators.length - 1; i >= 0; i--) if (d = decorators[i]) r = (c < 3 ? d(r) : c > 3 ? d(target, key, r) : d(target, key)) || r; return c > 3 && r && Object.defineProperty(target, key, r), r; }; var __importStar = (this && this.__importStar) || (function () { var ownKeys = function(o) { ownKeys = Object.getOwnPropertyNames || function (o) { var ar = []; for (var k in o) if (Object.prototype.hasOwnProperty.call(o, k)) ar[ar.length] = k; return ar; }; return ownKeys(o); }; return function (mod) { if (mod && mod.__esModule) return mod; var result = {}; if (mod != null) for (var k = ownKeys(mod), i = 0; i < k.length; i++) if (k[i] !== "default") __createBinding(result, mod, k[i]); __setModuleDefault(result, mod); return result; }; })(); var __importDefault = (this && this.__importDefault) || function (mod) { return (mod && mod.__esModule) ? mod : { "default": mod }; }; Object.defineProperty(exports, "__esModule", { value: true }); const jest_json_reporter_1 = require("@sprucelabs/jest-json-reporter"); const test_utils_1 = __importStar(require("@sprucelabs/test-utils")); const JestJsonParser_1 = __importDefault(require("../../tests/JestJsonParser")); const onTestFileResult_1 = __importDefault(require("../support/onTestFileResult")); class JestJsonParserTest extends test_utils_1.default { static parser; static async beforeEach() { await super.beforeEach(); this.parser = new JestJsonParser_1.default(); } static canCreateJjp() { test_utils_1.assert.isTruthy(this.parser.write); } static generatesEmptyResults() { const startRun = this.generateTestResults('onRunStart'); this.parser.write(startRun); const testResults = this.parser.getResults(); test_utils_1.assert.isEqualDeep(testResults, { totalTestFiles: 43, }); } static canHandleSelfContainedWrite() { const data = this.generateTestResults('onTestFileStart', 'behavioral/errors/CreatingANewErrorBuilder.test.js'); this.parser.write(this.generateTestResults('onRunStart')); this.parser.write(data); const testResults = this.parser.getResults(); test_utils_1.assert.isTruthy(testResults.testFiles); test_utils_1.assert.isLength(testResults.testFiles, 1); test_utils_1.assert.isEqualDeep(testResults.testFiles[0], { path: `behavioral/errors/CreatingANewErrorBuilder.test.ts`, status: 'running', }); } static generateTestResults(jestStatus, testFile) { switch (jestStatus) { case 'onRunStart': return `${jest_json_reporter_1.START_DIVIDER}{"status":"onRunStart","results":{"numFailedTestSuites":0,"numFailedTests":0,"numPassedTestSuites":0,"numPassedTests":0,"numPendingTestSuites":0,"numPendingTests":0,"numRuntimeErrorTestSuites":0,"numTodoTests":0,"numTotalTestSuites":43,"numTotalTests":0,"openHandles":[],"snapshot":{"added":0,"didUpdate":false,"failure":false,"filesAdded":0,"filesRemoved":0,"filesRemovedList":[],"filesUnmatched":0,"filesUpdated":0,"matched":0,"total":0,"unchecked":0,"uncheckedKeysByFile":[],"unmatched":0,"updated":0},"startTime":1603459399575,"success":false,"testResults":[],"wasInterrupted":false}}${jest_json_reporter_1.END_DIVIDER}`; case 'onTestFileStart': return `${jest_json_reporter_1.START_DIVIDER}{"status":"onTestFileStart","test":{"context":{"config":{"automock":false,"cache":true,"cacheDirectory":"/private/var/folders/qw/v2bfr0c94bn37vclwvcltsj40000gn/T/jest_dx","clearMocks":false,"coveragePathIgnorePatterns":["/node_modules/"],"cwd":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli","detectLeaks":false,"detectOpenHandles":false,"errorOnDeprecated":false,"extraGlobals":[],"forceCoverageMatch":[],"globals":{},"haste":{"computeSha1":false,"throwOnModuleCollision":false},"injectGlobals":true,"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","json","jsx","ts","tsx","node"],"moduleNameMapper":[["^#spruce/schemas/fields/(.*)","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1"],["^#spruce/(.*)$","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1"]],"modulePathIgnorePatterns":[],"name":"44406c6bd09f4805a9dd2ad1a17b150c","prettierPath":"prettier","resetMocks":false,"resetModules":false,"restoreMocks":false,"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli","roots":["/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"],"runner":"jest-runner","setupFiles":[],"setupFilesAfterEnv":[],"skipFilter":false,"slowTestThreshold":5,"snapshotSerializers":[],"testEnvironment":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-environment-node/build/index.js","testEnvironmentOptions":{},"testLocationInResults":false,"testMatch":["**/__tests__/**/*.test.js?(x)"],"testPathIgnorePatterns":["/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/tmp/","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/testDirsAndFiles/"],"testRegex":[],"testRunner":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-jasmine2/build/index.js","testURL":"http://localhost","timers":"real","transform":[[".[jt]sx?$","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/babel-jest/build/index.js",{}]],"transformIgnorePatterns":["/node_modules/",".pnp.[^/]+$"],"watchPathIgnorePatterns":["/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/"]},"hasteFS":{"_rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli","_files":{}},"moduleMap":{"duplicates":[],"map":[["@sprucelabs/spruce-cli",{"g":["package.json",1]}]],"mocks":[],"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"},"resolver":{"_options":{"extensions":[".js",".json",".jsx",".ts",".tsx",".node"],"hasCoreModules":true,"moduleDirectories":["node_modules"],"moduleNameMapper":[{"moduleName":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1","regex":{}},{"moduleName":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1","regex":{}}],"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"},"_moduleMap":{"duplicates":[],"map":[["@sprucelabs/spruce-cli",{"g":["package.json",1]}]],"mocks":[],"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"},"_moduleIDCache":{},"_moduleNameCache":{},"_modulePathCache":{},"_supportsNativePlatform":false}},"duration":40472,"path":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/${testFile}"}}${jest_json_reporter_1.END_DIVIDER}`; case 'onTestFileResult': return `${jest_json_reporter_1.START_DIVIDER}${JSON.stringify((0, onTestFileResult_1.default)(testFile ?? 'missing'))}${jest_json_reporter_1.END_DIVIDER}`; default: throw new Error('Status not implemented'); } } static canHandleSelfContainedWriteWithTwoTests() { const data = this.generateTestResults('onTestFileStart', 'behavioral/errors/CreatingANewErrorBuilder.test.js') + this.generateTestResults('onTestFileStart', 'behavioral/tests/RunningTests.test.js'); this.parser.write(data); const testResults = this.parser.getResults(); test_utils_1.assert.isTruthy(testResults.testFiles); test_utils_1.assert.isLength(testResults.testFiles, 2); test_utils_1.assert.isEqualDeep(testResults.testFiles, [ { path: `behavioral/errors/CreatingANewErrorBuilder.test.ts`, status: 'running', }, { path: `behavioral/tests/RunningTests.test.ts`, status: 'running', }, ]); } static multipleSelfContainedWritesWorks() { this.parser.write(this.generateTestResults('onTestFileStart', `behavioral/errors/CreatingANewErrorBuilder.test.js`)); this.parser.write(this.generateTestResults('onTestFileStart', `behavioral/tests/RunningTests.test.js`)); const testResults = this.parser.getResults(); test_utils_1.assert.isTruthy(testResults.testFiles); test_utils_1.assert.isLength(testResults.testFiles, 2); test_utils_1.assert.isEqualDeep(testResults.testFiles, [ { path: `behavioral/errors/CreatingANewErrorBuilder.test.ts`, status: 'running', }, { path: `behavioral/tests/RunningTests.test.ts`, status: 'running', }, ]); } static partialWriteReturnsNothing() { const data = this.generateTestResults('onTestFileStart', 'behavioral/errors/KeepingErrorsInSync.test.js').substr(0, 100); this.parser.write(data); const testResults = this.parser.getResults(); test_utils_1.assert.isFalsy(testResults.testFiles); } static canPartialWriteAcrossTwoWrites() { const data = this.generateTestResults('onTestFileStart', 'behavioral/errors/KeepingErrorsInSync.test.js'); const firstPart = data.substr(0, 100); const secondPart = data.substr(100); this.parser.write(firstPart); this.parser.write(secondPart); const testResults = this.parser.getResults(); test_utils_1.assert.isTruthy(testResults.testFiles); test_utils_1.assert.isLength(testResults.testFiles, 1); test_utils_1.assert.isEqualDeep(testResults.testFiles[0], { path: `behavioral/errors/KeepingErrorsInSync.test.ts`, status: 'running', }); } static canPartialWriteAndSelfContainedAcrossThreeWrites() { const data = this.generateTestResults('onTestFileStart', 'behavioral/errors/KeepingErrorsInSync.test.js'); const firstPart = data.substr(0, 100); const secondPart = data.substr(100); this.parser.write(this.generateTestResults('onRunStart')); this.parser.write(firstPart); this.parser.write(secondPart); this.parser.write(this.generateTestResults('onTestFileStart', 'behavioral/tests/CreatingANewErrorBuilder.test.js')); const testResults = this.parser.getResults(); test_utils_1.assert.isEqualDeep(testResults, { totalTestFiles: 43, testFiles: [ { path: 'behavioral/errors/KeepingErrorsInSync.test.ts', status: 'running', }, { path: 'behavioral/tests/CreatingANewErrorBuilder.test.ts', status: 'running', }, ], }); } static canSelfContainedPlusPartial() { const firstSelfContained = this.generateTestResults('onTestFileStart', `behavioral/errors/KeepingErrorsInSync.test.js`); const data = firstSelfContained + this.generateTestResults('onTestFileStart', 'behavioral/tests/CreatingANewErrorBuilder.test.js'); const splitIdx = firstSelfContained.length + 500; const firstPart = data.substr(0, splitIdx); const secondPart = data.substr(splitIdx); this.parser.write(firstPart); this.parser.write(secondPart); const testResults = this.parser.getResults(); test_utils_1.assert.isTruthy(testResults.testFiles); test_utils_1.assert.isLength(testResults.testFiles, 2); test_utils_1.assert.isEqualDeep(testResults.testFiles[0], { path: `behavioral/errors/KeepingErrorsInSync.test.ts`, status: 'running', }); test_utils_1.assert.isEqualDeep(testResults.testFiles[1], { path: 'behavioral/tests/CreatingANewErrorBuilder.test.ts', status: 'running', }); } static canHandleGarbageAtFrontOfData() { const data = 'yarn test run\nother garbage' + this.generateTestResults('onTestFileStart', 'behavioral/errors/CreatingANewErrorBuilder.test.js'); this.parser.write(data); const testResults = this.parser.getResults(); test_utils_1.assert.isTruthy(testResults.testFiles); test_utils_1.assert.isLength(testResults.testFiles, 1); test_utils_1.assert.isEqualDeep(testResults.testFiles[0], { path: `behavioral/errors/CreatingANewErrorBuilder.test.ts`, status: 'running', }); } static canHandlesSplitTestRestsWithGarbageInFrontAndDanglingEnd() { this.parser.write('yarn run go team ***************************START_JSON_DIVIDER***************************'); this.parser.write('{"status":"onTestFileStart","test":{"context":{"config":{"automock":false,"cache":true,"cacheDirectory":"/private/tmp/jest_dx","clearMocks":false,"coveragePathIgnorePatterns":["/node_modules/"],"cwd":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli","detectLeaks":false,"detectOpenHandles":false,"errorOnDeprecated":false,"extraGlobals":[],"forceCoverageMatch":[],"globals":{},"haste":{"computeSha1":false,"throwOnModuleCollision":false},"injectGlobals":true,"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","json","jsx","ts","tsx","node"],"moduleNameMapper":[["^#spruce/schemas/fields/(.*)","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1"],["^#spruce/(.*)$","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1"]],"modulePathIgnorePatterns":[],"name":"44406c6bd09f4805a9dd2ad1a17b150c","prettierPath":"prettier","resetMocks":false,"resetModules":false,"restoreMocks":false,"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli","roots":["/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"],"runner":"jest-runner","setupFiles":[],"setupFilesAfterEnv":[],"skipFilter":false,"slowTestThreshold":5,"snapshotSerializers":[],"testEnvironment":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-environment-node/build/index.js","testEnvironmentOptions":{},"testLocationInResults":false,"testMatch":["**/__tests__/**/*.test.js?(x)"],"testPathIgnorePatterns":["/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/tmp/","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/testDirsAndFiles/"],"testRegex":[],"testRunner":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-jasmine2/build/index.js","testURL":"http://localhost","timers":"real","transform":[[".[jt]sx?$","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/babel-jest/build/index.js",{}]],"transformIgnorePatterns":["/node_modules/",".pnp.[^/]+$"],"watchPathIgnorePatterns":["/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/"]},"hasteFS":{"_rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli","_files":{}},"moduleMap":{"duplicates":[],"map":[["@sprucelabs/spruce-cli",{"g":["package.json",1]}]],"mocks":[],"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"},"resolver":{"_options":{"extensions":[".js",".json",".jsx",".ts",".tsx",".node"],"hasCoreModules":true,"moduleDirectories":["node_modules"],"moduleNameMapper":[{"moduleName":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1","regex":{}},{"moduleName":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1","regex":{}}],"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"},"_moduleMap":{"duplicates":[],"map":[["@sprucelabs/spruce-cli",{"g":["package.json",1]}]],"mocks":[],"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"},"_moduleIDCache":{},"_moduleNameCache":{},"_modulePathCache":{},"_supportsNativePlatform":false}},"duration":50540,"path":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/behavioral/tests/RunningTests.test.js"}}'); this.parser .write(`***************************END_JSON_DIVIDER*************************** ***************************START_JSON_DIVIDER*************************** {"status":"onTestFileStart","test":{"context":{"config":{"automock":false,"cache":true,"cacheDirectory":"/private/tmp/jest_dx","clearMocks":false,"coveragePathIgnorePatterns":["/node_modules/"],"cwd":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli","detectLeaks":false,"detectOpenHandles":false,"errorOnDeprecated":false,"extraGlobals":[],"forceCoverageMatch":[],"globals":{},"haste":{"computeSha1":false,"throwOnModuleCollision":false},"injectGlobals":true,"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","json","jsx","ts","tsx","node"],"moduleNameMapper":[["^#spruce/schemas/fields/(.*)","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1"],["^#spruce/(.*)$","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1"]],"modulePathIgnorePatterns":[],"name":"44406c6bd09f4805a9dd2ad1a17b150c","prettierPath":"prettier","resetMocks":false,"resetModules":false,"restoreMocks":false,"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli","roots":["/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"],"runner":"jest-runner","setupFiles":[],"setupFilesAfterEnv":[],"skipFilter":false,"slowTestThreshold":5,"snapshotSerializers":[],"testEnvironment":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-environment-node/build/index.js","testEnvironmentOptions":{},"testLocationInResults":false,"testMatch":["**/__tests__/**/*.test.js?(x)"],"testPathIgnorePatterns":["/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/tmp/","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/testDirsAndFiles/"],"testRegex":[],"testRunner":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-jasmine2/build/index.js","testURL":"http://localhost","timers":"real","transform":[["\.[jt]sx?$","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/babel-jest/build/index.js",{}]],"transformIgnorePatterns":["/node_modules/","\.pnp\.[^\/]+$"],"watchPathIgnorePatterns":["/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/"]},"hasteFS":{"_rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli","_files":{}},"moduleMap":{"duplicates":[],"map":[["@sprucelabs/spruce-cli",{"g":["package.json",1]}]],"mocks":[],"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"},"resolver":{"_options":{"extensions":[".js",".json",".jsx",".ts",".tsx",".node"],"hasCoreModules":true,"moduleDirectories":["node_modules"],"moduleNameMapper":[{"moduleName":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1","regex":{}},{"moduleName":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1","regex":{}}],"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"},"_moduleMap":{"duplicates":[],"map":[["@sprucelabs/spruce-cli",{"g":["package.json",1]}]],"mocks":[],"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"},"_moduleIDCache":{},"_moduleNameCache":{},"_modulePathCache":{},"_supportsNativePlatform":false}},"duration":48733,"path":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/behavioral/errors/CreatingANewErrorBuilder.test.js"}} ***************************END_JSON_DIVIDER*************************** ***************************START_JSON_DIVIDER*************************** {"status":"onTestFileStart","test":{"context":{"config":{"automock":false,"cache":true,"cacheDirectory":"/private/tmp/jest_dx","clearMocks":false,"coveragePathIgnorePatterns":["/node_modules/"],"cwd":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli","detectLeaks":false,"detectOpenHandles":false,"errorOnDeprecated":false,"extraGlobals":[],"forceCoverageMatch":[],"globals":{},"haste":{"computeSha1":false,"throwOnModuleCollision":false},"injectGlobals":true,"moduleDirectories":["node_modules"],"moduleFileExtensions":["js","json","jsx","ts","tsx","node"],"moduleNameMapper":[["^#spruce/schemas/fields/(.*)","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1"],["^#spruce/(.*)$","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1"]],"modulePathIgnorePatterns":[],"name":"44406c6bd09f4805a9dd2ad1a17b150c","prettierPath":"prettier","resetMocks":false,"resetModules":false,"restoreMocks":false,"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli","roots":["/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"],"runner":"jest-runner","setupFiles":[],"setupFilesAfterEnv":[],"skipFilter":false,"slowTestThreshold":5,"snapshotSerializers":[],"testEnvironment":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-environment-node/build/index.js","testEnvironmentOptions":{},"testLocationInResults":false,"testMatch":["**/__tests__/**/*.test.js?(x)"],"testPathIgnorePatterns":["/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/tmp/","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/testDirsAndFiles/"],"testRegex":[],"testRunner":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/jest-jasmine2/build/index.js","testURL":"http://localhost","timers":"real","transform":[["\.[jt]sx?$","/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/node_modules/babel-jest/build/index.js",{}]],"transformIgnorePatterns":["/node_modules/","\.pnp\.[^\/]+$"],"watchPathIgnorePatterns":["/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/src/"]},"hasteFS":{"_rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli","_files":{}},"moduleMap":{"duplicates":[],"map":[["@sprucelabs/spruce-cli",{"g":["package.json",1]}]],"mocks":[],"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"},"resolver":{"_options":{"extensions":[".js",".json",".jsx",".ts",".tsx",".node"],"hasCoreModules":true,"moduleDirectories":["node_modules"],"moduleNameMapper":[{"moduleName":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/node_modules/@sprucelabs/schema/build/.spruce/schemas/fields/$1","regex":{}},{"moduleName":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/.spruce/$1","regex":{}}],"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"},"_moduleMap":{"duplicates":[],"map":[["@sprucelabs/spruce-cli",{"g":["package.json",1]}]],"mocks":[],"rootDir":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli"},"_moduleIDCache":{},"_moduleNameCache":{},"_modulePathCache":{},"_supportsNativePlatform":false}},"duration":17443,"path":"/Users/taylorromero/Development/SpruceLabs/spruce-cli-workspace/packages/spruce-cli/build/__tests__/behavioral/watchers/WatchingForChanges.test.js"}}`); const testResults = this.parser.getResults(); test_utils_1.assert.isTruthy(testResults.testFiles); test_utils_1.assert.isLength(testResults.testFiles, 2); } static canUpdateAsTestsCompletes() { const data = this.generateTestResults('onTestFileStart', 'behavioral/errors/CreatingANewErrorBuilder.test.js'); this.parser.write(data); const completed = this.generateTestResults('onTestFileResult', 'behavioral/errors/CreatingANewErrorBuilder.test.js'); this.parser.write(completed); const testResults = this.parser.getResults(); test_utils_1.assert.isTruthy(testResults.testFiles); test_utils_1.assert.isLength(testResults.testFiles, 11); test_utils_1.assert.isEqualDeep(testResults, { totalTestFiles: 39, testFiles: [ { path: 'behavioral/errors/CreatingANewErrorBuilder.test.ts', status: 'running', }, { path: 'implementation/CasualNameUtility.test.ts', status: 'passed', tests: [ { name: 'No name returns friend', status: 'passed', errorMessages: [], duration: 2, }, { name: 'Just last name to just last name', status: 'passed', errorMessages: [], duration: 0, }, { name: 'First name only to first name only', status: 'passed', errorMessages: [], duration: 1, }, { name: 'last and first name to First Last initial', status: 'passed', errorMessages: [], duration: 0, }, ], }, { path: 'implementation/PhoneUtility.test.ts', status: 'passed', tests: [ { name: 'canMatchDummyNumber', status: 'passed', errorMessages: [], duration: 1, }, ], }, { path: 'implementation/TokenUtility.test.ts', status: 'passed', tests: [ { name: 'exists', status: 'passed', errorMessages: [], duration: 0, }, { name: 'canGenerateTokenForPerson', status: 'passed', errorMessages: [], duration: 10, }, { name: 'generatesValidToken', status: 'passed', errorMessages: [], duration: 1, }, { name: 'decodesAndVerifiesValidToken', status: 'passed', errorMessages: [], duration: 1, }, { name: 'decodesValidToken', status: 'passed', errorMessages: [], duration: 1, }, { name: 'verifyFailsOnBadSecret', status: 'passed', errorMessages: [], duration: 17, }, ], }, { path: 'implementation/RoleStore.test.ts', status: 'passed', tests: [ { name: 'canCreateOrgStore', status: 'passed', errorMessages: [], duration: 4, }, { name: 'canGenerateBaseRoles', status: 'passed', errorMessages: [], duration: 80, }, ], }, { path: 'implementation/PersonRoleStore.test.ts', status: 'passed', tests: [ { name: 'personRole', status: 'passed', errorMessages: [], duration: 6, }, { name: 'canGivePersonGlobalRole', status: 'passed', errorMessages: [], duration: 88, }, { name: 'canGiveRoleAndThenTakeItAway', status: 'passed', errorMessages: [], duration: 25, }, { name: 'canAssignOrgRole', status: 'passed', errorMessages: [], duration: 30, }, { name: 'removeRoleFromOrgDoesNotRemoveGlobal', status: 'passed', errorMessages: [], duration: 28, }, { name: 'cantAssignSameRoleTwice', status: 'passed', errorMessages: [], duration: 14, }, { name: 'canAddRemoveThenReAddRole', status: 'passed', errorMessages: [], duration: 18, }, { name: 'removesTheCorrectRole', status: 'passed', errorMessages: [], duration: 19, }, ], }, { path: 'implementation/ContractValidator.test.ts', status: 'passed', tests: [ { name: 'canRegisterContract', status: 'passed', errorMessages: [], duration: 2, }, { name: 'cannotMixinContractWithDuplicateEvents', status: 'passed', errorMessages: [], duration: 0, }, { name: 'canClearEventsFromContract', status: 'passed', errorMessages: [], duration: 1, }, { name: 'clearingUnknownEventThrowsError', status: 'passed', errorMessages: [], duration: 1, }, ], }, { path: 'implementation/MercuryServer.test.ts', status: 'passed', tests: [ { name: 'canCreateServer', status: 'passed', errorMessages: [], duration: 28, }, { name: 'throwsWhenEmittingBadEvent', status: 'passed', errorMessages: [], duration: 21, }, ], }, { path: 'behavioral/UpdatingARole.test.ts', status: 'failed', errorMessage: testResults.testFiles.find((file) => file.path === 'behavioral/UpdatingARole.test.ts')?.errorMessage, tests: [ { name: 'hasUpdateRoleEvent', status: 'failed', errorMessages: testResults.testFiles.find((file) => file.path === 'behavioral/UpdatingARole.test.ts')?.tests?.[0]?.errorMessages, duration: 24, }, ], }, { path: 'implementation/SkillGenerator.test.ts', status: 'passed', tests: [ { name: 'canInstantiate', status: 'passed', errorMessages: [], duration: 1, }, { name: 'generatesNewSkillValuesByName', status: 'passed', errorMessages: [], duration: 1, }, ], }, { path: 'implementation/Database.test.ts', status: 'passed', tests: [ { name: 'throws error when updating record not found (neDb)', status: 'passed', errorMessages: [], duration: 3, }, { name: 'can delete record (mongo)', status: 'passed', errorMessages: [], duration: 47, }, { name: 'can upsert (neDb)', status: 'passed', errorMessages: [], duration: 5, }, { name: 'can create a compound field unique index (mongo)', status: 'passed', errorMessages: [], duration: 82, }, ], }, ], totalTestFilesComplete: 20, totalFailed: 1, totalPassed: 181, totalTests: 183, totalSkipped: 1, totalTodo: 0, }); } } exports.default = JestJsonParserTest; __decorate([ (0, test_utils_1.test)() ], JestJsonParserTest, "canCreateJjp", null); __decorate([ (0, test_utils_1.test)() ], JestJsonParserTest, "generatesEmptyResults", null); __decorate([ (0, test_utils_1.test)() ], JestJsonParserTest, "canHandleSelfContainedWrite", null); __decorate([ (0, test_utils_1.test)() ], JestJsonParserTest, "canHandleSelfContainedWriteWithTwoTests", null); __decorate([ (0, test_utils_1.test)() ], JestJsonParserTest, "multipleSelfContainedWritesWorks", null); __decorate([ (0, test_utils_1.test)() ], JestJsonParserTest, "partialWriteReturnsNothing", null); __decorate([ (0, test_utils_1.test)() ], JestJsonParserTest, "canPartialWriteAcrossTwoWrites", null); __decorate([ (0, test_utils_1.test)() ], JestJsonParserTest, "canPartialWriteAndSelfContainedAcrossThreeWrites", null); __decorate([ (0, test_utils_1.test)() ], JestJsonParserTest, "canSelfContainedPlusPartial", null); __decorate([ (0, test_utils_1.test)() ], JestJsonParserTest, "canHandleGarbageAtFrontOfData", null); __decorate([ (0, test_utils_1.test)() ], JestJsonParserTest, "canHandlesSplitTestRestsWithGarbageInFrontAndDanglingEnd", null); __decorate([ (0, test_utils_1.test)() ], JestJsonParserTest, "canUpdateAsTestsCompletes", null); //# sourceMappingURL=JestJsonParser.test.js.map