UNPKG

@cuba-platform/front-generator

Version:
67 lines 2.82 kB
"use strict"; 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