@cuba-platform/front-generator
Version:
CUBA Platform front-end clients generator
67 lines • 2.82 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.assertFilesPlain = exports.assertFiles = exports.opts = exports.format = exports.assertContent = exports.createTestProjectEntityInfo = exports.modelCtx = void 0;
const assert = require("assert");
const model_utils_1 = require("../generators/sdk/model/model-utils");
const fs = require("fs");
const prettier = require("prettier");
const path = require("path");
const assert_1 = require("assert");
const enumsModel = require('./fixtures/enums-model.json');
const entityModel = require('./fixtures/entity-model.json');
function modelCtx() {
return (0, model_utils_1.collectModelContext)({ entities: [entityModel], enums: enumsModel });
}
exports.modelCtx = modelCtx;
function createTestProjectEntityInfo(className, isBase = false) {
const shortName = className.split('.').pop();
return {
type: { className: className },
entity: { className: shortName, name: (isBase ? 'sys$' : 'mpg$') + shortName, fqn: className }
};
}
exports.createTestProjectEntityInfo = createTestProjectEntityInfo;
function assertContent(actual, expect, multiline = true) {
assert.strictEqual(drain(actual, multiline), drain(expect, multiline));
}
exports.assertContent = assertContent;
function drain(content, multiline = true) {
const result = multiline
? content
.replace(/^\s+/gm, '') //spaces at the line start, and empty lines
: content
.replace(/\n/g, ' '); //multiline false - join in one line
return result
.replace(/\s{2,}/g, ' ') //two or more spaces with one space
.trim();
}
function format(file) {
const formatted = prettier.format(fs.readFileSync(file, 'utf8'), { parser: "typescript" });
fs.writeFileSync(file, formatted, 'utf8');
}
exports.format = format;
function opts(dir, answers, modelPath) {
return {
model: modelPath,
dest: dir,
debug: true,
answers: Buffer.from(JSON.stringify(answers)).toString('base64')
};
}
exports.opts = opts;
/**
* @deprecated use assertFilesPlain, which is not change file content, it is not required since we are using prettier
*/
function assertFiles(filePath, clientDir, fixturesDir) {
const actual = fs.readFileSync(path.join(clientDir, filePath), 'utf8');
const expect = fs.readFileSync(path.join(fixturesDir, filePath), 'utf8');
assertContent(actual, expect);
}
exports.assertFiles = assertFiles;
function assertFilesPlain(filePath, clientDir, fixturesDir) {
const actual = fs.readFileSync(path.join(clientDir, filePath), 'utf8');
const expect = fs.readFileSync(path.join(fixturesDir, filePath), 'utf8');
(0, assert_1.strictEqual)(actual, expect);
}
exports.assertFilesPlain = assertFilesPlain;
//# sourceMappingURL=test-commons.js.map