dts-jest
Version:
A preprocessor for Jest to snapshot test TypeScript declaration (.d.ts) files
60 lines (59 loc) • 2.2 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.normalize_trigger_header_methods = void 0;
var definitions_1 = require("../definitions");
var normalize_trigger_header_methods = function (headers) {
var has_only_method = headers.some(function (header) {
return header.method === definitions_1.TestMethod.Only ||
(header.group !== undefined && header.group.method === definitions_1.GroupMethod.Only);
});
if (!has_only_method) {
return;
}
headers.forEach(function (header) {
if (header.method === definitions_1.TestMethod.Test &&
(header.group === undefined || header.group.method === definitions_1.GroupMethod.Test)) {
header.method = definitions_1.TestMethod.Skip;
}
});
var group_map = new Map();
headers.forEach(function (header) {
set_array_map(group_map, header.group, header);
});
group_map.forEach(function (grouped_triggers, group) {
if (group !== undefined) {
normalize_grouped_trigger_methods(grouped_triggers);
}
});
headers.forEach(function (header) {
if (header.method === definitions_1.TestMethod.Only) {
header.method = definitions_1.TestMethod.Test;
}
});
};
exports.normalize_trigger_header_methods = normalize_trigger_header_methods;
function set_array_map(map, key, value) {
var values = map.get(key);
if (values === undefined) {
map.set(key, [value]);
}
else {
values.push(value);
}
}
function normalize_grouped_trigger_methods(headers) {
var test_headers = [];
var only_headers = [];
var is_skip_group = headers[0].group.method === definitions_1.GroupMethod.Skip;
headers.forEach(function (header) {
if (header.method === definitions_1.TestMethod.Test) {
test_headers.push(header);
}
else if (header.method === definitions_1.TestMethod.Only) {
only_headers.push(header);
}
});
if (is_skip_group || only_headers.length !== 0) {
test_headers.forEach(function (header) { return (header.method = definitions_1.TestMethod.Skip); });
}
}