dts-jest
Version:
A preprocessor for Jest to snapshot test TypeScript declaration (.d.ts) files
57 lines (56 loc) • 2.42 kB
JavaScript
;
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;
}