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