fix: Resolve infinite loop with campaign API call (#2290)

Co-authored-by: Muhsin <muhsinkeramam@gmail.com>
This commit is contained in:
Pranav Raj S
2021-05-18 12:15:23 +05:30
committed by GitHub
parent bc9db36d62
commit 20a0d381a7
8 changed files with 65 additions and 33 deletions

View File

@@ -3,8 +3,8 @@ export const stripTrailingSlash = ({ URL }) => {
};
// Format all campaigns
export const formatCampaigns = ({ campagins }) => {
return campagins.map(item => {
export const formatCampaigns = ({ campaigns }) => {
return campaigns.map(item => {
return {
id: item.id,
timeOnPage: item?.trigger_rules?.time_on_page,
@@ -14,8 +14,8 @@ export const formatCampaigns = ({ campagins }) => {
};
// Find all campaigns that matches the current URL
export const filterCampaigns = ({ campagins, currentURL }) => {
return campagins.filter(
export const filterCampaigns = ({ campaigns, currentURL }) => {
return campaigns.filter(
item =>
stripTrailingSlash({ URL: item.url }) ===
stripTrailingSlash({ URL: currentURL })

View File

@@ -5,9 +5,9 @@ class CampaignTimer {
this.campaignTimers = [];
}
initTimers = ({ campagins }) => {
initTimers = ({ campaigns }) => {
this.clearTimers();
campagins.forEach(campaign => {
campaigns.forEach(campaign => {
const { timeOnPage, id: campaignId } = campaign;
this.campaignTimers[campaignId] = setTimeout(() => {
triggerCampaign({ campaignId });

View File

@@ -15,7 +15,7 @@ describe('#Campagin Helper', () => {
describe('formatCampaigns', () => {
it('should return formated campaigns if camapgins are passed', () => {
expect(formatCampaigns({ campagins: campaigns })).toStrictEqual([
expect(formatCampaigns({ campaigns })).toStrictEqual([
{
id: 1,
timeOnPage: 3,
@@ -33,7 +33,7 @@ describe('#Campagin Helper', () => {
it('should return filtered campaigns if formatted camapgins are passed', () => {
expect(
filterCampaigns({
campagins: [
campaigns: [
{
id: 1,
timeOnPage: 3,