UNPKG

@cloud-copilot/iam-simulate

Version:
37 lines 2.05 kB
"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.testOperator = testOperator; const vitest_1 = require("vitest"); const request_js_1 = require("../request/request.js"); const requestContext_js_1 = require("../requestContext.js"); function testOperator(name, tests, operator) { (0, vitest_1.describe)(name, (it) => { for (const test of tests) { it(test.name, () => { //Given the request const request = new request_js_1.AwsRequestImpl('', { resource: '', accountId: '' }, '', new requestContext_js_1.RequestContextImpl(test.requestContext || {})); //When the condition is evaluated const result = operator.matches(request, test.testValue, test.policyValues); //Then the result should be as expected (0, vitest_1.expect)(result.matches).toBe(test.expected); if (test.explains) { for (const explain of test.explains) { const found = result.explains.find((e) => e.value === explain.value); (0, vitest_1.expect)(found, `Missing explain for ${explain.value}`).toBeDefined(); (0, vitest_1.expect)(found?.matches, `${explain.value} match`).toBe(explain.matches); if (explain.resolvedValue) { (0, vitest_1.expect)(found?.resolvedValue, `${explain.value} resolved value`).toBe(explain.resolvedValue); } else { (0, vitest_1.expect)(found?.resolvedValue, `${explain.value} resolved value to be undefined`).toBeUndefined(); } if (explain.errors) { (0, vitest_1.expect)(found?.errors, `${explain.value} errors`).toEqual(explain.errors.sort()); } } } }); } }); } //# sourceMappingURL=baseConditionperatorTests.js.map