DigitalConsumer.FixMyGlass/src/mixins/analytics-mixin.spec.js
2022-05-04 09:11:46 -04:00

110 lines
No EOL
2.8 KiB
JavaScript

import analyticsMixin from "@/mixins/analytics-mixin";
import { setupMocksForJsFiles } from "@/helpers/unit-test-helper.js";
import { storeActions } from "@/constants/store-actions";
describe("analyticsMixin.js", () => {
test("logPageView: calls dispatch with type and payload", () => {
const type = "";
const payload = {};
const mockData = {
actionList: [{
actionName: storeActions.LOG_PAGE_VIEW
}],
}
const mocks = setupMocksForJsFiles(mockData);
analyticsMixin.methods.logPageView(type, payload);
expect(mocks.baseMixin.methods.dispatchStoreAction).toBeCalled();
});
test("logCustomEvent: calls dispatch with type and payload", () => {
const type = "";
const payload = {};
const mockData = {
actionList: [{
actionName: storeActions.LOG_CUSTOM_EVENT
}],
}
const mocks = setupMocksForJsFiles(mockData);
analyticsMixin.methods.logCustomEvent(type, payload);
expect(mocks.baseMixin.methods.dispatchStoreAction).toBeCalled();
});
test("pushEventToGA, should call logEvent too", () => {
// Arrange
const mockData = {
actionList: [{
actionName: storeActions.LOG_CUSTOM_EVENT
}],
}
const mocks = setupMocksForJsFiles(mockData);
// Act
analyticsMixin.methods.pushEventToGA('category', 'action', 'label', true);
// Assert
expect(mocks.baseMixin.methods.dispatchStoreAction).toBeCalled();
});
test("Experiments, should push to dataLayer with default Google Custom Dimension Index", () => {
// Arrange
window.dataLayer = [];
const mockExperimentData =
[
{
settings: {},
variationName: 'test',
universeName: 'testUniverse'
}
]
// Act
analyticsMixin.methods.pushExperimentsToDataLayer(mockExperimentData);
// Assert
expect(window.dataLayer).toEqual([{
experimentId_99: undefined,
variationId_99: undefined,
experimentName_99: 'testUniverse',
variationName_99: 'test',
customDimension_99: 'undefined_undefined_testUniverse_test'
}]);
});
test("Experiments, should push to dataLayer with custom Google Custom Dimension Index", () => {
// Arrange
window.dataLayer = [];
const mockExperimentData =
[
{
settings: { "Google Custom Dimension Index": "5" },
variationName: 'test',
universeName: 'testUniverse'
}
]
// Act
analyticsMixin.methods.pushExperimentsToDataLayer(mockExperimentData);
// Assert
expect(window.dataLayer).toEqual([{
experimentId_5: undefined,
variationId_5: undefined,
experimentName_5: 'testUniverse',
variationName_5: 'test',
customDimension_5: 'undefined_undefined_testUniverse_test'
}]);
});
});