"use strict";
require("reflect-metadata");
var _metadata_keys_1 = require("./_metadata-keys");
function TestCase() {
var testCaseArguments = [];
for (var _i = 0; _i < arguments.length; _i++) {
testCaseArguments[_i - 0] = arguments[_i];
}
return function (target, propertyKey, descriptor) {
// check if this has been registered as a test already
var tests = Reflect.getMetadata(_metadata_keys_1.TESTS, target);
// if there are no tests registered yet then register it
if (!tests) {
tests = [{
key: propertyKey
}];
Reflect.defineMetadata(_metadata_keys_1.TESTS, tests, target);
}
else if (tests.filter(function (test) { return test.key === propertyKey; }).length === 0) {
tests.push({
key: propertyKey
});
Reflect.defineMetadata(_metadata_keys_1.TESTS, tests, target);
}
// check if there are test cases already associated with this test
var testCases = Reflect.getMetadata(_metadata_keys_1.TEST_CASES, target, propertyKey);
// if not create an empty array
if (!testCases) {
testCases = [];
}
// add the test case to the list
testCases.unshift({
arguments: testCaseArguments
});
// update the list of test cases
Reflect.defineMetadata(_metadata_keys_1.TEST_CASES, testCases, target, propertyKey);
};
}
exports.TestCase = TestCase;
//# sourceMappingURL=test-case-decorator.js.map |