sls-test-tools
Version:
Custom Jest Assertions for Serverless Projects
61 lines (52 loc) • 1.57 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = void 0;
var _testResult = require("../../utils/testResult");
var _general = require("../../helpers/general");
var _default = {
async toContainItemWithValues(tableName, values) {
const docClient = new _general.AWSClient.DynamoDB.DocumentClient({
region: _general.region
});
const keys = {
pk: values["PK"]
};
if (values["SK"] !== undefined) {
keys.sk = values["SK"];
}
const queryParams = {
Key: keys,
TableName: tableName
};
let allMatched = true;
let itemExists = true;
try {
const result = await docClient.get(queryParams).promise();
Object.entries(values).forEach(([key, val]) => {
if (result.Item !== undefined) {
if (key in result.Item) {
if (result.Item[key] !== val) {
allMatched = false;
}
}
} else {
itemExists = false;
}
});
if (!itemExists) {
return (0, _testResult.testResult)(`Item does not exist.`, false);
} else if (!allMatched) {
return (0, _testResult.testResult)(`Some values do not match as expected.`, false);
} else {
return (0, _testResult.testResult)("Item exists with expected values", true);
}
} catch (e) {
console.log(e);
return (0, _testResult.testResult)("Item with specified keys does not exist.", false);
}
}
};
exports.default = _default;
//# sourceMappingURL=index.js.map