@shopgate/engage
Version:
Shopgate's ENGAGE library.
18 lines • 1.59 kB
JavaScript
var mockedProduct={productId:'foo',rating:{average:0,count:0}};var mockedProductWithRating={productId:'foo',rating:{average:50,count:4}};/**
* Creates mocked review object.
* @param {string|number} id Anything that can be an id.
* @return {Object}
*/export var mockReview=function mockReview(id){return{id:id,author:'',date:'2017-09-06T12:38:51.000Z',rate:100,title:'',review:'No Name and Title Lorem ipsum dolor sit amet, con… takimata sanctus est Lorem ipsum dolor sit amet.'};};/**
* Mocked state with 4 reviews.
* @type {Object}
*/export var mockedStateWithAll={product:{productsById:{foo:{productData:mockedProductWithRating}}},reviews:{reviewsById:{1:mockReview(1),2:mockReview(2),3:mockReview(3),4:mockReview(4)},reviewsByProductId:{foo:{reviews:[1,2,3,4],totalReviewCount:4}}}};/**
* Similar to mockedStateWithAll, but contains only two reviews.
* @type {Object}
*/export var mockedStateWithTwoReviews=function(){// Must do deep clone here.
var mockedState=JSON.parse(JSON.stringify(mockedStateWithAll));mockedState.reviews.reviewsByProductId.foo.reviews=mockedState.reviews.reviewsByProductId.foo.reviews.slice(0,2);mockedState.reviews.reviewsByProductId.foo.totalReviewCount=2;return mockedState;}();/**
* Mocked state with product only. Reviews not fetched.
* @type {Object}
*/export var mockedStateWithoutReview={product:{productsById:{foo:{productData:mockedProduct}}},reviews:{reviewsById:{},reviewsByProductId:{}}};/**
* Mocked state without data.
* @type {{product: {productsById: {}}}}
*/export var mockedStateProductEmpty={product:{productsById:{}}};