UNPKG

wmt-marketplace-auth-canada

Version:

Generate the authentication headers required by Walmart Marketplace API.

54 lines (46 loc) 2.53 kB
import { expect } from 'chai'; import * as Headers from '../../lib/headers'; describe('Custom Headers object has expected defaults.', () => { let headers = new Headers.Custom; it('Has WMService Name of Walmart Marketplace.', () => { expect(headers.WMService.Name).to.equal('Walmart Marketplace'); }); it('Has Accept header of application/json', () => { expect(headers.Accept).to.equal('application/json'); }); it('Has a Content-Type header of application/json', () => { expect(headers.ContentType).to.equal('application/json'); }); it('Has a CorrelationId', () => { expect(headers.WMQOS.CorrelationId).is.not.null; }); }); describe('Signed Headers object is built from Custom Headers object.', () => { let headers = new Headers.Custom; headers.setCorrelationId('1234hfvgtr'); it('Has a CorrelationId of 1234hfvgtr.', () => { expect(headers.WMQOS.CorrelationId).to.equal('1234hfvgtr'); }); // Channel and ConsumerId samples generated by: `uuidgen | tr "[:upper:]" "[:lower:]"` headers.setConsumer({ Channel: { Type: '38b7eb6c-3672-4022-93a2-f47794f36338' }, ConsumerId: 'f091ae58-774c-45ff-9d8a-e30a83344e42' }); it('Has a Consumer Channel Type value of 38b7eb6c-3672-4022-93a2-f47794f36338', () => { expect(headers.WMConsumer.Channel.Type).to.equal('38b7eb6c-3672-4022-93a2-f47794f36338'); }); it('Has a ConsumerId of f091ae58-774c-45ff-9d8a-e30a83344e42', () => { expect(headers.WMConsumer.ConsumerId).to.equal('f091ae58-774c-45ff-9d8a-e30a83344e42'); }); // Private key sample from https://en.wikipedia.org/wiki/PKCS_8. let digitalSignatureRequest = { RequestUrl: 'https://marketplace.walmartapis.com/v3/feeds', PrivateKey: 'MIIBVgIBADANBgkqhkiG9w0BAQEFAASCAUAwggE8AgEAAkEAq7BFUpkGp3+LQmlQYx2eqzDV+xeG8kx/sQFV18S5JhzGeIJNA72wSeukEPojtqUyX2J0CciPBh7eqclQ2zpAswIDAQABAkAgisq4+zRdrzkwH1ITV1vpytnkO/NiHcnePQiOW0VUybPyHoGM/jf75C5xET7ZQpBe5kx5VHsPZj0CBb3b+wSRAiEA2mPWCBytosIU/ODRfq6EiV04lt6waE7I2uSPqIC20LcCIQDJQYIHQII+3YaPqyhGgqMexuuuGx+lDKD6/Fu/JwPb5QIhAKthiYcYKlL9h8bjDsQhZDUACPasjzdsDEdq8inDyLOFAiEAmCr/tZwA3qeAZoBzI10DGPIuoKXBd3nk/eBxPkaxlEECIQCNymjsoI7GldtujVnr1qT+3yedLfHKsrDVjIT3LsvTqw==', RequestMethod: 'GET' } headers.setTimestamp(1523287838530); let signedHeaders = Headers.sign(headers, digitalSignatureRequest); it('Has a digital signature.', () => { expect(signedHeaders["WM_SEC.AUTH_SIGNATURE"]).to.equal('E1EPWiqwuLYceSVr2XGmljo7qq1+EDI5++1XvFcVf+/klas+mLMAJbDihfAwkjyDxi3WkJDdTCNfle0O+4V/9g=='); }); });