forked from typeorm/typeorm
/
issue-6284.ts
36 lines (28 loc) · 1.41 KB
/
issue-6284.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
import {expect} from "chai";
import { writeFileSync, unlinkSync } from "fs";
import { ConnectionOptionsReader } from "../../../src/connection/ConnectionOptionsReader";
import { importClassesFromDirectories } from "../../../src/util/DirectoryExportedClassesLoader";
import { LoggerFactory } from "../../../src/logger/LoggerFactory";
describe("cli support for cjs extension", () => {
it("will load a cjs file", async () => {
const cjsConfigPath = [__dirname, "ormconfig.cjs"].join("/");
const databaseType = "postgres";
const config = `module.exports = {"type": "${databaseType}"};`;
writeFileSync(cjsConfigPath, config);
const reader = new ConnectionOptionsReader({root: __dirname });
const results = await reader.all();
expect(results).to.be.an("Array");
expect(results[0]).to.be.an("Object");
expect(results[0].type).to.equal(databaseType);
unlinkSync(cjsConfigPath);
});
it("loads cjs files via DirectoryExportedClassesloader", () => {
const klassPath = [__dirname, "klass.cjs"].join("/");
const klass = `module.exports.Widget = class Widget {};`;
writeFileSync(klassPath, klass);
const classes = importClassesFromDirectories(new LoggerFactory().create(), [`${__dirname}/*.cjs`]);
expect(classes).to.be.an("Array");
expect(classes.length).to.eq(1);
unlinkSync(klassPath);
});
});