UNPKG

dts-jest

Version:

A preprocessor for Jest to snapshot test TypeScript declaration (.d.ts) files

60 lines (59 loc) 2.2 kB
"use strict"; 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); }); } }