Created
June 23, 2016 03:44
-
-
Save HzJavier/c59272e74ec93c7beb3c02ca4a975f4d to your computer and use it in GitHub Desktop.
Testing with Sinon stubs, promises and callbacks
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
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