UNPKG

dts-jest

Version:

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

57 lines (56 loc) 2.42 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.find_trigger_headers = void 0; var definitions_1 = require("../definitions"); var for_each_comment_1 = require("./for-each-comment"); var get_comment_content_1 = require("./get-comment-content"); var parse_trigger_header_flags_1 = require("./parse-trigger-header-flags"); var find_trigger_headers = function (source_file, ts) { var headers = []; var last_group; (0, for_each_comment_1.for_each_comment)(source_file, function (comment, scanner) { var match = (0, get_comment_content_1.get_comment_content)(comment) // treat `@ts-expect-error` as `@dts-jest:fail` .replace(/^\s*@ts-expect-error/, '@dts-jest:fail') .match(definitions_1.trigger_header_regex); if (match === null) { return; } var description = match[definitions_1.TriggerHeaderMatchIndex.Description]; var flags = (0, parse_trigger_header_flags_1.parse_trigger_header_flags)(match[definitions_1.TriggerHeaderMatchIndex.Flags]); var start = scanner.getTokenPos(); var line = source_file.getLineAndCharacterOfPosition(start).line; if (flags & definitions_1.TriggerHeaderFlags[':group']) { last_group = { line: line, method: get_group_method(flags), description: description.length === 0 ? undefined : description, }; } else { headers.push({ line: line, flags: flags, method: get_test_method(flags), description: description.length === 0 ? undefined : description, group: last_group, }); } }, ts); return headers; }; exports.find_trigger_headers = find_trigger_headers; function get_test_method(flag) { return flag & definitions_1.TriggerHeaderFlags[':only'] ? definitions_1.TestMethod.Only : flag & definitions_1.TriggerHeaderFlags[':skip'] ? definitions_1.TestMethod.Skip : definitions_1.TestMethod.Test; } function get_group_method(flag) { return flag & definitions_1.TriggerHeaderFlags[':only'] ? definitions_1.GroupMethod.Only : flag & definitions_1.TriggerHeaderFlags[':skip'] ? definitions_1.GroupMethod.Skip : definitions_1.GroupMethod.Test; }