Skip to content

Commit 909baa4

Browse files
committed
add testing
1 parent adfb74f commit 909baa4

File tree

3 files changed

+43
-1
lines changed

3 files changed

+43
-1
lines changed

__tests__/__snapshots__/resolvers.test.js.snap

Lines changed: 12 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,18 @@ exports[`dynamodb resolvers something 2`] = `
3838
]
3939
`;
4040

41+
exports[`error handling error 1`] = `
42+
{
43+
"message": "foo",
44+
}
45+
`;
46+
47+
exports[`error handling unauthorized 1`] = `
48+
{
49+
"message": "Unauthorized",
50+
}
51+
`;
52+
4153
exports[`rds resolvers attributeExists nested or 1`] = `
4254
{
4355
"statements": [

__tests__/helpers.js

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -27,6 +27,9 @@ const runResolverFunctionOnAWS = async (code, context, functionName) => {
2727
});
2828

2929
const result = await client.send(command);
30+
if (result.error) {
31+
return result.error;
32+
}
3033
try {
3134
return JSON.parse(result.evaluationResult);
3235
} catch (e) {
@@ -72,7 +75,14 @@ export const checkResolverValid = async (code, context, functionName) => {
7275
const fn = module[functionName];
7376

7477
transformContextForAppSync(context);
75-
result = fn(context);
78+
try {
79+
result = fn(context);
80+
} catch (e) {
81+
if (e.name !== "AppSyncUserError") {
82+
throw e;
83+
}
84+
result = {"message": e.message}
85+
}
7686
}
7787
expect(result).toMatchSnapshot();
7888
};

__tests__/resolvers.test.js

Lines changed: 20 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1016,3 +1016,23 @@ describe("rds resolvers", () => {
10161016
});
10171017
});
10181018

1019+
describe("error handling", () => {
1020+
test("error", async () => {
1021+
const code = `
1022+
export function request(ctx) {
1023+
util.error("foo")
1024+
}
1025+
export function response(ctx) {}
1026+
`;
1027+
await checkResolverValid(code, {}, "request");
1028+
})
1029+
test("unauthorized", async () => {
1030+
const code = `
1031+
export function request(ctx) {
1032+
util.unauthorized()
1033+
}
1034+
export function response(ctx) {}
1035+
`;
1036+
await checkResolverValid(code, {}, "request");
1037+
})
1038+
})

0 commit comments

Comments
 (0)