dts-jest
Version:
A preprocessor for Jest to snapshot test TypeScript declaration (.d.ts) files
44 lines (43 loc) • 2.56 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", { value: true });
exports.parse_trigger_header_flags = void 0;
var definitions_1 = require("../definitions");
var parse_trigger_header_flags = function (unparsed_flags) {
var flags = definitions_1.TriggerHeaderFlags.None;
unparsed_flags
.split(/(?=:)/)
.filter(function (flag_literal) { return flag_literal.length !== 0; })
.forEach(function (flag_literal) {
switch (flag_literal) {
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':fail']]:
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':pass']]:
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':show']]:
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':snap']]:
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':not-any']]:
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':only']]:
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':skip']]:
case definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':group']]:
var current_flag = definitions_1.TriggerHeaderFlags[flag_literal];
if (flags & current_flag) {
throw new Error("Duplicate flag '".concat(flag_literal, "'"));
}
flags = flags | current_flag;
break;
default:
throw new Error("Unexpected flag '".concat(flag_literal, "'"));
}
});
if (flags & definitions_1.TriggerHeaderFlags[':pass'] &&
flags & definitions_1.TriggerHeaderFlags[':fail']) {
var pass_flag_literal = definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':pass']];
var fail_flag_literal = definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':fail']];
throw new Error("".concat(pass_flag_literal, " and ").concat(fail_flag_literal, " cannot be used simultaneously'"));
}
if (flags & definitions_1.TriggerHeaderFlags[':group'] &&
flags & definitions_1.TriggerHeaderFlags.Assertion) {
var group_flag_literal = definitions_1.TriggerHeaderFlags[definitions_1.TriggerHeaderFlags[':group']];
throw new Error("AssertionFlag is not allowed to be used with flag '".concat(group_flag_literal, "'"));
}
return flags;
};
exports.parse_trigger_header_flags = parse_trigger_header_flags;