Skip to content

Instantly share code, notes, and snippets.

@HzJavier
Created June 23, 2016 03:44
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save HzJavier/c59272e74ec93c7beb3c02ca4a975f4d to your computer and use it in GitHub Desktop.
Save HzJavier/c59272e74ec93c7beb3c02ca4a975f4d to your computer and use it in GitHub Desktop.
Testing with Sinon stubs, promises and callbacks
var sinon = require('sinon');
var chai = require('chai');
var expect = chai.expect;
var chaiAsPromised = require('chai-as-promised');
var Promise = require('bluebird');
var _ = require('lodash');
var subscriptionService = require('../../lib/services/subscription-service');
var addressService = require('../../lib/services/address-service');
var subscriptionResource = require('../../lib/resources/subscriptions-resource');
chai.use(chaiAsPromised);
describe('Subscription Service', function () {
var req, res;
it('Updates delivery address for FRE', function (done) {
var serviceResponse = {
statusCode: 200,
data: {
"subscriptionId": "OLF:J011316502583",
"comboId": null,
"contactInfo": {
"firstName": "IVO",
"lastName": "Reyes",
"address": {
"city": "NEW YORK",
"stateProvinceCode": "NY",
"postalCode": "10036",
"streetName": "AVENUE OF THE AMERICAS",
"streetNumber": "1211",
"countryCode": "US"
}
}
},
errors: []
};
var expectedResponse = {
data: {
"subscriptionId": "OLF:J011316502583------",
"comboId": null,
"contactInfo": {
"firstName": "IVO",
"lastName": "Reyes",
"address": {
"city": "NEW YORK",
"stateProvinceCode": "NY",
"postalCode": "10036",
"streetName": "AVENUE OF THE AMERICAS",
"streetNumber": "1211",
"countryCode": "US"
}
}
},
errors: []
};
this.updateDeliveryAddress = sinon.stub(subscriptionService, 'updateDeliveryAddress', function () {
return Promise.resolve(serviceResponse);
});
req = {
body: {
"uuid": "2d27ecec-5726-4356-b702-401fec987ff6",
"profileChanged": false,
"addressChanged": true,
"subscriptionTransaction": {
"subscriptionId": "OLF:J011316502583",
"comboId": null,
"effectiveDate": "2016-06-13-04:00",
"requestedDate": "2016-06-09-04:00",
"deliveryDetail": {
"contactInfo": {
"lastName": "Reyes",
"firstName": "IVO",
"phone": "8987898002",
"address": {
"streetNumber": "1211",
"streetName": "AVENUE OF THE AMERICAS",
"addressLines": [
"b-1"
],
"stateProvinceCode": "NY",
"city": "New York",
"postalCode": "10001",
"unitNumber": "1",
"countryCode": "US",
"unitType": "#",
"addressMetadata": {
"cleansingStatus": "Passed Cleansing"
}
}
},
"deliveryDays": [
"FRI", "TUE", "MON", "THU", "WED"
]
}
}
}
};
res = {
send: function (data) {
expect(data).equals(expectedResponse);
done();
},
status: function () {
console.log('error');
}
};
subscriptionResource.updateDeliveryAddress(req, res);
this.updateDeliveryAddress.restore();
});
it('Validates payload', function () {
//TODO: Implement test case
});
});
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment