@code-nl/shopify-hmac
Version:
Shopify HMAC lib to verify Shopify calls
84 lines (64 loc) • 1.94 kB
JavaScript
const chai = require('chai');
const assert = chai.assert;
const { ShopifyAuthHMAC } = require("../index");
describe("HMAC Auth", () => {
let apiSecret;
before(() => {
apiSecret = "hush";
});
after(() => {});
it("is able to generate HMAC based on a query", (done) => {
const request = {
query: {
test: "testing"
}
};
const generatedHmac = ShopifyAuthHMAC.generate(request, apiSecret);
const expectedHmac = "786192abc84d52c6799a5705486f1d3f2529f48e4a43b54b50efb9bde76a5011";
assert.equal(generatedHmac, expectedHmac);
done();
});
it("is able to generate HMAC based on a query and ignores the included HMAC as content", (done) => {
const request = {
query: {
test: "testing",
hmac: "786192abc84d52c6799a5705486f1d3f2529f48e4a43b54b50efb9bde76a5011"
}
};
const generatedHmac = ShopifyAuthHMAC.generate(request, apiSecret);
assert.equal(generatedHmac, request.query.hmac);
done();
});
it("is able to verify a query with a valid HMAC", (done) => {
const request = {
query: {
test: "testing",
hmac: "786192abc84d52c6799a5705486f1d3f2529f48e4a43b54b50efb9bde76a5011"
}
};
const verified = ShopifyAuthHMAC.verify(request, apiSecret);
assert.isTrue(verified);
done();
});
it("is able to reject a query with an invalid HMAC", (done) => {
const request = {
query: {
test: "testing",
hmac: "686192abc84d52c6799a5705486f1d3f2529f48e4a43b54b50efb9bde76a5011"
}
};
const verified = ShopifyAuthHMAC.verify(request, apiSecret);
assert.isFalse(verified);
done();
});
it("is able to reject a query without any HMAC", (done) => {
const request = {
query: {
test: "testing"
}
};
const verified = ShopifyAuthHMAC.verify(request, apiSecret);
assert.isFalse(verified);
done();
});
});