49 lines
2.0 KiB
JavaScript
Executable File
49 lines
2.0 KiB
JavaScript
Executable File
#!/usr/bin/env -S node --no-warnings --loader ts-node/esm --experimental-vm-modules
|
|
"use strict";
|
|
var __importDefault = (this && this.__importDefault) || function (mod) {
|
|
return (mod && mod.__esModule) ? mod : { "default": mod };
|
|
};
|
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
const tstest_1 = require("tstest");
|
|
const fs_1 = __importDefault(require("fs"));
|
|
const path_1 = __importDefault(require("path"));
|
|
const extract_class_names_js_1 = require("./extract-class-names.js");
|
|
const cjs_js_1 = require("../cjs.js");
|
|
(0, tstest_1.test)('extractClassNameListFromSource()', async (t) => {
|
|
const TS = `
|
|
@Sidecar(
|
|
targetProgram(),
|
|
loadAgentSource(),
|
|
)
|
|
class ChatboxSidecar extends SidecarBody {}
|
|
|
|
@Sidecar(
|
|
targetProgram(),
|
|
loadAgentSource(),
|
|
)
|
|
|
|
class ChatboxSidecar2 extends SidecarBody {}
|
|
`;
|
|
const EXPECTED = ['ChatboxSidecar', 'ChatboxSidecar2'];
|
|
const classNameList = await (0, extract_class_names_js_1.extractClassNameListFromSource)(TS);
|
|
t.same(classNameList, EXPECTED, 'should extract the class name correct');
|
|
});
|
|
(0, tstest_1.test)('extractClassNameListFromSource() with export', async (t) => {
|
|
const TS = `
|
|
@Sidecar(
|
|
targetProgram(),
|
|
loadAgentSource(),
|
|
)
|
|
export class ChatboxSidecar extends SidecarBody {}
|
|
`;
|
|
const EXPECTED = ['ChatboxSidecar'];
|
|
const classNameList = await (0, extract_class_names_js_1.extractClassNameListFromSource)(TS);
|
|
t.same(classNameList, EXPECTED, 'should extract the exported class name correct');
|
|
});
|
|
(0, tstest_1.test)('extractClassNameListFromSource() with examples/chatbox-sidebar.ts', async (t) => {
|
|
const TS = await fs_1.default.readFileSync(path_1.default.join(cjs_js_1.codeRoot, 'examples', 'chatbox-sidecar.ts')).toString();
|
|
const EXPECTED = ['ChatboxSidecar'];
|
|
const classNameList = await (0, extract_class_names_js_1.extractClassNameListFromSource)(TS);
|
|
t.same(classNameList, EXPECTED, 'should extract the class name correct');
|
|
});
|
|
//# sourceMappingURL=extract-class-names.spec.js.map
|