Skip to content

Commit 65f667f

Browse files
committed
[test] Simplify test
1 parent 066f84a commit 65f667f

File tree

1 file changed

+56
-75
lines changed

1 file changed

+56
-75
lines changed

test/shopify.test.js

+56-75
Original file line numberDiff line numberDiff line change
@@ -917,81 +917,6 @@ describe('Shopify', () => {
917917
);
918918
});
919919

920-
it('can add a hook to not throw an error when the response has errors', () => {
921-
const customerDataErrors = [
922-
{
923-
message:
924-
'This app is not approved to use the email field. See https://partners.shopify.com/1/apps/1/customer_data for more details.',
925-
path: ['customers', 'edges', '0', 'node', 'email'],
926-
extensions: {
927-
code: 'ACCESS_DENIED',
928-
documentation:
929-
'https://partners.shopify.com/1/apps/1/customer_data',
930-
requiredAccess:
931-
'Shopify approval is required before using the email field.'
932-
}
933-
},
934-
{
935-
message:
936-
'This app is not approved to use the firstName field. See https://partners.shopify.com/1/apps/1/customer_data for more details.',
937-
path: ['customers', 'edges', '0', 'node', 'firstName'],
938-
extensions: {
939-
code: 'ACCESS_DENIED',
940-
documentation:
941-
'https://partners.shopify.com/1/apps/1/customer_data',
942-
requiredAccess:
943-
'Shopify approval is required before using the firstName field.'
944-
}
945-
}
946-
];
947-
948-
let calledWithErrors = undefined;
949-
950-
const shopify = new Shopify({
951-
shopName,
952-
accessToken,
953-
hooks: {
954-
afterResponse: [
955-
(res) => {
956-
if (res.body && res.body.errors) {
957-
calledWithErrors = res.body.errors;
958-
959-
res.body.errors = undefined;
960-
}
961-
962-
return res;
963-
}
964-
]
965-
}
966-
});
967-
968-
scope.post('/admin/api/graphql.json').reply(200, {
969-
data: {
970-
customers: {
971-
edges: [
972-
{
973-
node: {
974-
id: 'gid://shopify/Customer/1234567890',
975-
email: null,
976-
firstName: null
977-
}
978-
}
979-
]
980-
}
981-
},
982-
errors: customerDataErrors
983-
});
984-
985-
return shopify.graphql('query').then((result) => {
986-
expect(calledWithErrors).to.deep.equal(customerDataErrors);
987-
expect(result.customers.edges[0].node.id).to.equal(
988-
'gid://shopify/Customer/1234567890'
989-
);
990-
expect(result.customers.edges[0].node.email).to.equal(null);
991-
expect(result.customers.edges[0].node.firstName).to.equal(null);
992-
});
993-
});
994-
995920
it('uses basic auth as intended', () => {
996921
const shopify = new Shopify({ shopName, apiKey, password });
997922

@@ -1313,6 +1238,62 @@ describe('Shopify', () => {
13131238
});
13141239
});
13151240

1241+
it('runs the afterResponse error hook after the user hooks', () => {
1242+
function afterResponse(response) {
1243+
afterResponse.errors = response.body.errors;
1244+
//
1245+
// Prevents errors from being thrown.
1246+
//
1247+
response.body.errors = undefined;
1248+
return response;
1249+
}
1250+
1251+
const data = {
1252+
customers: {
1253+
edges: [
1254+
{
1255+
node: {
1256+
id: 'gid://shopify/Customer/1234567890',
1257+
email: null
1258+
}
1259+
}
1260+
]
1261+
}
1262+
};
1263+
1264+
const errors = [
1265+
{
1266+
message:
1267+
'This app is not approved to use the email field. ' +
1268+
'See https://partners.shopify.com/1/apps/1/customer_data ' +
1269+
'for more details.',
1270+
path: ['customers', 'edges', '0', 'node', 'email'],
1271+
extensions: {
1272+
code: 'ACCESS_DENIED',
1273+
documentation:
1274+
'https://partners.shopify.com/1/apps/1/customer_data',
1275+
requiredAccess:
1276+
'Shopify approval is required before using the email field.'
1277+
}
1278+
}
1279+
];
1280+
1281+
scope.post('/admin/api/graphql.json').reply(200, { data, errors });
1282+
1283+
const shopify = new Shopify({
1284+
shopName,
1285+
accessToken,
1286+
hooks: {
1287+
afterResponse: [afterResponse]
1288+
}
1289+
});
1290+
1291+
return shopify.graphql('query').then((result) => {
1292+
expect(afterResponse.errors).to.deep.equal(errors);
1293+
expect(result).to.deep.equal(data);
1294+
});
1295+
});
1296+
13161297
it('calls the beforeRetry hook for retried requests', () => {
13171298
function beforeRetry() {
13181299
beforeRetry.called = true;

0 commit comments

Comments
 (0)