@nx/vite
Version:
82 lines (81 loc) • 4.1 kB
JavaScript
"use strict";
Object.defineProperty(exports, "updateTestConfig", {
enumerable: true,
get: function() {
return updateTestConfig;
}
});
const _devkit = require("@nx/devkit");
const _tsquery = require("@phenomnomnominal/tsquery");
const _updateviteconfig = require("../update-vite-config");
function updateTestConfig(configContents, projectConfig, configPath) {
var _tsquery_query, _projectConfig_targets_test_options, _projectConfig_targets_test, _projectConfig_targets;
const configNode = (0, _updateviteconfig.getConfigNode)(configContents);
if (!configNode) {
(0, _updateviteconfig.notFoundWarning)(configPath);
return configContents;
}
const testObject = (_tsquery_query = _tsquery.tsquery.query(configNode, `PropertyAssignment:has(Identifier[name="test"])`)) == null ? void 0 : _tsquery_query[0];
let testCoverageDir;
let testCoverage;
let provider;
let reporters;
if (testObject) {
var _tsquery_query1, _tsquery_query2;
testCoverage = (_tsquery_query1 = _tsquery.tsquery.query(testObject, `PropertyAssignment:has(Identifier[name="coverage"])`)) == null ? void 0 : _tsquery_query1[0];
reporters = (_tsquery_query2 = _tsquery.tsquery.query(testObject, `PropertyAssignment:has(Identifier[name="reporters"])`)) == null ? void 0 : _tsquery_query2[0];
if (testCoverage) {
var _tsquery_query3, _tsquery_query4;
testCoverageDir = (_tsquery_query3 = _tsquery.tsquery.query(testCoverage, `PropertyAssignment:has(Identifier[name="reportsDirectory"])`)) == null ? void 0 : _tsquery_query3[0];
provider = (_tsquery_query4 = _tsquery.tsquery.query(testCoverage, `PropertyAssignment:has(Identifier[name="provider"])`)) == null ? void 0 : _tsquery_query4[0];
}
}
let coverageDir = '';
if ((_projectConfig_targets = projectConfig.targets) == null ? void 0 : (_projectConfig_targets_test = _projectConfig_targets.test) == null ? void 0 : (_projectConfig_targets_test_options = _projectConfig_targets_test.options) == null ? void 0 : _projectConfig_targets_test_options.reportsDirectory) {
var _projectConfig_targets_test_options1, _projectConfig_targets_test1, _projectConfig_targets1;
coverageDir = (_projectConfig_targets1 = projectConfig.targets) == null ? void 0 : (_projectConfig_targets_test1 = _projectConfig_targets1.test) == null ? void 0 : (_projectConfig_targets_test_options1 = _projectConfig_targets_test1.options) == null ? void 0 : _projectConfig_targets_test_options1.reportsDirectory;
} else {
coverageDir = (0, _devkit.joinPathFragments)((0, _devkit.offsetFromRoot)(projectConfig.root), 'coverage', projectConfig.root);
}
let changes = [];
if (!reporters && testObject) {
changes.push({
type: _devkit.ChangeType.Insert,
index: testObject.getStart() + `test: {`.length + 1,
text: `reporters: ['default'],`
});
}
if (testCoverageDir) {
// Do nothing
} else if (testCoverage) {
// has test.coverage, has no reportsDirectory
// so add reportsDirectory
changes.push({
type: _devkit.ChangeType.Insert,
index: testCoverage.getStart() + `coverage: {`.length + 1,
text: `reportsDirectory: '${coverageDir}',`
});
if (!provider) {
changes.push({
type: _devkit.ChangeType.Insert,
index: testCoverage.getStart() + `coverage: {`.length + 1,
text: `provider: 'v8' as const,`
});
}
} else if (testObject) {
changes.push({
type: _devkit.ChangeType.Insert,
index: testObject.getStart() + `test: {`.length + 1,
text: `coverage: {
reportsDirectory: '${coverageDir}',
provider: 'v8' as const,
},`
});
}
if (changes.length > 0) {
return (0, _devkit.applyChangesToString)(configContents, changes);
} else {
return configContents;
}
}
//# sourceMappingURL=edit-test-config.js.map