archieve-projects/微信机器人/node_modules/sidecar/dist/cjs/src/cli/extract-class-names.spec.js

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