@sprucelabs/spruce-cli
Version:
Command line interface for building Spruce skills.
543 lines • 39.9 kB
JavaScript
"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