UNPKG

dts-jest

Version:

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

73 lines (72 loc) 3.62 kB
"use strict"; exports.__esModule = true; var definitions_1 = require("../definitions"); exports.snapshot_assertion_message = '(type) should match snapshot'; exports.create_assertion_expression = function (trigger, options) { var expressions = []; var header = trigger.header, body = trigger.body, footer = trigger.footer; push_type_show_if_available(); push_type_pass_if_available(); push_type_fail_if_available(); push_type_snap_if_available(); push_value_show_if_available(); push_value_equal_if_available(); push_value_error_if_available(); push_value_no_error_if_available(); return expressions.join(';'); // tslint:disable:early-exit function push_type_show_if_available() { if (options.test_type && header.flags & definitions_1.TriggerHeaderFlags[':show']) { expressions.push(create_wrapper('(type) should show report', "console.log(" + options.get_type_report_expression + ")")); } } function push_type_pass_if_available() { if (options.test_type && header.flags & definitions_1.TriggerHeaderFlags[':pass']) { expressions.push(create_wrapper('(type) should not throw error', "expect(function () { " + options.get_type_inference_or_throw_diagnostic_expression + " }).not.toThrowError()")); } } function push_type_fail_if_available() { if (options.test_type && header.flags & definitions_1.TriggerHeaderFlags[':fail']) { expressions.push(create_wrapper('(type) should throw error', "expect(function () { " + options.get_type_inference_or_throw_diagnostic_expression + " }).toThrowError()")); } } function push_type_snap_if_available() { if (options.test_type && header.flags & definitions_1.TriggerHeaderFlags[':snap']) { expressions.push(create_wrapper(exports.snapshot_assertion_message, "expect(" + options.get_type_inference_or_diagnostic_expression + ").toMatchSnapshot()")); } } function push_value_equal_if_available() { if (options.test_value && footer !== undefined && footer.flag === undefined) { expressions.push(create_wrapper("(value) should equal to " + footer.expected, "expect(" + body.experssion + ").toEqual(" + footer.expected + ")")); } } function push_value_error_if_available() { if (options.test_value && footer !== undefined && footer.flag === definitions_1.TriggerFooterFlag.Error) { expressions.push(create_wrapper('(value) should throw error', "expect(function () { " + body.experssion + " }).toThrowError()")); } } function push_value_no_error_if_available() { if (options.test_value && footer !== undefined && footer.flag === definitions_1.TriggerFooterFlag.NoError) { expressions.push(create_wrapper('(value) should not throw error', "expect(function () { " + body.experssion + " }).not.toThrowError()")); } } function push_value_show_if_available() { if (options.test_value && footer !== undefined && footer.flag === definitions_1.TriggerFooterFlag.Show) { expressions.push(create_wrapper('(value) should show report', "console.log(" + options.get_value_report_expression + ")")); } } // tslint:enable:early-exit function create_wrapper(title, expression) { var description = JSON.stringify(title); var method = trigger.header.method; return method + "(" + description + ", function () { " + expression + " })"; } };