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

54 lines
2.0 KiB
JavaScript

var assert = require('chai').assert;
var request = require('request-promise');
var config = require('../it.config');
/**
* Test Case:
* Verify promotion enabled product variant id = 793775370033 should contain
* The promotion text message as well as the price adjustment
*/
describe('Product Variant Promotion on Product Details Page', function () {
this.timeout(5000);
var mainPid = '25752986M';
var myGetRequest = {
url: '',
method: 'GET',
rejectUnauthorized: false,
headers: {
'X-Requested-With': 'XMLHttpRequest'
}
};
it('should return a response containing promotion message and sale price ', function (done) {
myGetRequest.url = config.baseUrl + '/Product-Variation?pid='
+ mainPid + '&dwvar_' + mainPid + '_color=TURQUSI&quantity=1';
var expectedSalesPrice = { value: 23.99, currency: 'USD', formatted: '$23.99', 'decimalPrice': '23.99' };
var expectedListPrice = { value: 39.5, currency: 'USD', formatted: '$39.50', 'decimalPrice': '39.50' };
var expectedPromotion = {
'promotions': [
{
'calloutMsg': 'Get 20% off of this tie.',
'details': 'Buy a tie with 20% percent off.',
'enabled': true,
'id': 'PromotionTest_WithoutQualifying',
'name': 'PromotionTest_WithoutQualifying',
'promotionClass': 'PRODUCT',
'rank': null
}
]
};
request(myGetRequest, function (error, response) {
assert.equal(response.statusCode, 200, 'Expected GET Product-Variation statusCode to be 200.');
var bodyAsJson = JSON.parse(response.body);
assert.deepEqual(bodyAsJson.product.promotions[0], expectedPromotion.promotions[0]);
assert.deepEqual(bodyAsJson.product.price.sales, expectedSalesPrice);
assert.deepEqual(bodyAsJson.product.price.list, expectedListPrice);
done();
});
});
});