UNPKG

dts-jest

Version:

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

52 lines (51 loc) 2.14 kB
"use strict"; exports.__esModule = true; 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"); exports.find_trigger_headers = function (source_file, ts) { var headers = []; var last_group; for_each_comment_1.for_each_comment(source_file, function (comment, scanner) { var match = get_comment_content_1.get_comment_content(comment).match(definitions_1.trigger_header_regex); if (match === null) { return; } var description = match[definitions_1.TriggerHeaderMatchIndex.Description]; var flags = 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; }; 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; }