UNPKG

@sprucelabs/spruce-cli

Version:

Command line interface for building Spruce skills.

218 lines • 9.73 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 spruce_skill_utils_1 = require("@sprucelabs/spruce-skill-utils"); const test_utils_1 = __importStar(require("@sprucelabs/test-utils")); const StaticToInstanceTestFileMigrator_1 = __importDefault(require("../../../../tests/staticToInstanceMigration/StaticToInstanceTestFileMigrator")); let StaticToInstanceTestFileMigratorTest = class StaticToInstanceTestFileMigratorTest extends test_utils_1.default { migrator = StaticToInstanceTestFileMigrator_1.default.Migrator(); throwsWithMissing() { //@ts-ignore const err = test_utils_1.assert.doesThrow(() => this.migrate()); test_utils_1.errorAssert.assertError(err, 'MISSING_PARAMETERS', { parameters: ['contents'], }); } returnsEmptyString() { this.assertMigratedEquals('', ''); } fixesStaticFunction() { this.assertMigratedEquals(`@test() protected static myTest() {}`, `@test() protected myTest() {}`); } fixesStaticAsyncFunctions() { this.assertMigratedEquals(`@test() protected static async myTest() {}`, `@test() protected async myTest() {}`); } doesNotMessWithStaticInVariableName() { this.assertMigratedEquals(`protected staticInName() {}`, `protected staticInName() {}`); } addsSuiteDecoratorToClassIfNotThere() { this.assertMigratedEquals(`export default class Test {}`, `@suite()\nexport default class Test {}`); } doesNotAddSuitIfAnotherClassExported() { this.assertMigratedEquals(`export class Test {}`, `export class Test {}`); } doesNotAddSuiteIfAlreadyThere() { this.assertMigratedEquals(`@suite()\nexport default class Test {}`, `@suite()\nexport default class Test {}`); } addsImportIfNotThere() { this.assertMigratedEquals(`import { test } from '@sprucelabs/test-utils'`, `import { test, suite } from '@sprucelabs/test-utils'`); } doesNotMessWithAnythingWithTestInName() { this.assertMigratedEquals(`protected testing() {}`, `protected testing() {}`); } doesNoIncludeSuiteTwice() { this.assertMigratedEquals(`import { test, suite } from '@sprucelabs/test-utils'`, `import { test, suite } from '@sprucelabs/test-utils'`); } includesSuiteEvenIfSuiteIsInAMethodName() { this.assertMigratedEquals(`import { test } from '@sprucelabs/test-utils protected suiteMethod() {}`, `import { test, suite } from '@sprucelabs/test-utils protected suiteMethod() {}`); } includesSuiteWithMultipleImports() { this.assertMigratedEquals(`import AbstractSpruceTest, { test, assert, errorAssert, } from '@sprucelabs/test-utils'`, `import AbstractSpruceTest, { test, suite, assert, errorAssert, } from '@sprucelabs/test-utils'`); } canMigrateWholeTest() { const before = this.readTestFile('StaticTest.txt'); const expected = this.readTestFile('InstanceTest.txt'); this.assertMigratedEquals(before, expected); } properlyMigrationsAbstractTests() { const before = this.readTestFile('AbstractStaticTest.txt'); const expected = this.readTestFile('AbstractInstanceTest.txt'); this.assertMigratedEquals(before, expected); } properlyMigrationsAbstractTests2() { const before = this.readTestFile('AbstractStaticTest2.txt'); const expected = this.readTestFile('AbstractInstanceTest2.txt'); this.assertMigratedEquals(before, expected); } canMigrateMoreComplexTest() { const before = this.readTestFile('StaticTest2.txt'); const expected = this.readTestFile('InstanceTest2.txt'); this.assertMigratedEquals(before, expected); } canMigrateAnotherComplexTest() { const before = this.readTestFile('StaticTest3.txt'); const expected = this.readTestFile('InstanceTest3.txt'); this.assertMigratedEquals(before, expected); } canMigrateAnotherComplexTest2() { const before = this.readTestFile('StaticTest4.txt'); const expected = this.readTestFile('InstanceTest4.txt'); this.assertMigratedEquals(before, expected); } readTestFile(name) { return spruce_skill_utils_1.diskUtil.readFile(this.resolveTestClassPath(name)); } resolveTestClassPath(name) { return this.resolvePath(__dirname, 'support', name); } assertMigratedEquals(contents, expected) { const actual = this.migrate(contents); const cleanedActual = this.cleanString(actual); const cleanedExpected = this.cleanString(expected); test_utils_1.assert.isTrue(cleanedActual == cleanedExpected, `${actual}\n\ndoes not equal\n\n${expected}`); } cleanString(contents) { return contents.replace(/\s{2,}/g, ' ').trim(); } migrate(contents) { return this.migrator.migrate(contents); } }; __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "throwsWithMissing", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "returnsEmptyString", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "fixesStaticFunction", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "fixesStaticAsyncFunctions", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "doesNotMessWithStaticInVariableName", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "addsSuiteDecoratorToClassIfNotThere", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "doesNotAddSuitIfAnotherClassExported", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "doesNotAddSuiteIfAlreadyThere", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "addsImportIfNotThere", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "doesNotMessWithAnythingWithTestInName", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "doesNoIncludeSuiteTwice", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "includesSuiteEvenIfSuiteIsInAMethodName", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "includesSuiteWithMultipleImports", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "canMigrateWholeTest", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "properlyMigrationsAbstractTests", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "properlyMigrationsAbstractTests2", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "canMigrateMoreComplexTest", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "canMigrateAnotherComplexTest", null); __decorate([ (0, test_utils_1.test)() ], StaticToInstanceTestFileMigratorTest.prototype, "canMigrateAnotherComplexTest2", null); StaticToInstanceTestFileMigratorTest = __decorate([ (0, test_utils_1.suite)() ], StaticToInstanceTestFileMigratorTest); exports.default = StaticToInstanceTestFileMigratorTest; //# sourceMappingURL=StaticToInstanceTestFileMigrator.test.js.map