LearningSalesForceCommerceC.../storefront-reference-architecture/test/integration/coupon/deleteShippingLevelCoupon.js
2021-12-21 10:57:31 -08:00

84 lines
3.4 KiB
JavaScript

var assert = require('chai').assert;
var request = require('request-promise');
var config = require('../it.config');
describe('Shipping Level Coupon - remove coupon', function () {
this.timeout(25000);
var variantId = '740357377119M';
var quantity = 5;
var couponCode = 'shipping';
var cookieJar = request.jar();
var cookieString;
var UUID;
var myRequest = {
url: '',
method: 'POST',
rejectUnauthorized: false,
resolveWithFullResponse: true,
jar: cookieJar,
headers: {
'X-Requested-With': 'XMLHttpRequest'
}
};
myRequest.url = config.baseUrl + '/Cart-AddProduct';
myRequest.form = {
pid: variantId,
quantity: quantity
};
before(function () {
// ----- adding 5 products to Cart
return request(myRequest)
.then(function (response) {
assert.equal(response.statusCode, 200, 'Expected add to Cart request statusCode to be 200.');
cookieString = cookieJar.getCookieString(myRequest.url);
})
// ----- select a shipping method in order to get cart content
.then(function () {
var shipMethodId = '001'; // 001 = Ground
myRequest.method = 'POST';
myRequest.url = config.baseUrl + '/Cart-SelectShippingMethod?methodID=' + shipMethodId;
var cookie = request.cookie(cookieString);
cookieJar.setCookie(cookie, myRequest.url);
return request(myRequest);
})
.then(function () {
myRequest.method = 'POST';
myRequest.url = config.baseUrl + '/CSRF-Generate';
var cookie = request.cookie(cookieString);
cookieJar.setCookie(cookie, myRequest.url);
return request(myRequest);
})
// ----- apply shipping level coupon
.then(function (csrfResponse) {
var csrfJsonResponse = JSON.parse(csrfResponse.body);
myRequest.method = 'GET';
myRequest.url = config.baseUrl + '/Cart-AddCoupon?couponCode=' + couponCode +
'&' + csrfJsonResponse.csrf.tokenName + '=' + csrfJsonResponse.csrf.token;
return request(myRequest);
})
// ----- Get UUID information
.then(function (response) {
assert.equal(response.statusCode, 200, 'Expected apply shipping level coupon request statusCode to be 200.');
var bodyAsJson = JSON.parse(response.body);
UUID = bodyAsJson.totals.discounts[0].UUID;
});
});
it('should return non-discounted total after removal of shipping coupon', function () {
myRequest.url = config.baseUrl + '/Cart-RemoveCouponLineItem?code=' + couponCode + '&uuid=' + UUID;
return request(myRequest)
.then(function (response) {
assert.equal(response.statusCode, 200, 'Expected remove shipping level coupon request statusCode to be 200.');
var bodyAsJson = JSON.parse(response.body);
assert.equal(bodyAsJson.totals.shippingLevelDiscountTotal.value, 0, 'shippingLevelDiscountTotal value is 0');
assert.equal(bodyAsJson.totals.grandTotal, '$594.29', 'grandTotal is $594.29');
assert.equal(bodyAsJson.totals.totalTax, '$28.30', 'totalTax is $528.30');
});
});
});