Skip to content

Commit

Permalink
Revert "Revert "Add visitor support (#970)""
Browse files Browse the repository at this point in the history
This reverts commit 373774d.
  • Loading branch information
cea2aj committed Oct 14, 2021
1 parent 1d7db1a commit c653c95
Show file tree
Hide file tree
Showing 3 changed files with 24 additions and 1 deletion.
4 changes: 3 additions & 1 deletion static/js/answers-experience.js
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@ import DeferredPromise from './deferred-promise';
import analyticsListener from './runtime-config-listeners/analytics';
import sessionTrackingListener from './runtime-config-listeners/session-tracking';
import querySourceListener from './runtime-config-listeners/query-source';
import visitorListener from './runtime-config-listeners/visitor';

/**
* @typedef {import('./runtime-config.js').RuntimeConfigListener} RuntimeConfigListener
Expand All @@ -14,7 +15,8 @@ export default class AnswersExperience {
this._runtimeConfigListeners = [
analyticsListener,
sessionTrackingListener,
querySourceListener
querySourceListener,
visitorListener
];

this._registerRuntimeConfigListeners();
Expand Down
9 changes: 9 additions & 0 deletions static/js/runtime-config-listeners/visitor.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,9 @@
/**
* @type {import('../runtime-config.js').RuntimeConfigListener}
*/
export default {
key: 'visitor',
callback: value => {
ANSWERS.setVisitor(value);
}
}
12 changes: 12 additions & 0 deletions tests/static/js/answers-experience.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,12 @@
import AnswersExperience from '../../../static/js/answers-experience';
import RuntimeConfig from '../../../static/js/runtime-config';

describe('AnswersExperience works properly', () => {
it('visitor listener is called when visitor is set', () => {
const runtimeConfig = new RuntimeConfig();
const experience = new AnswersExperience(runtimeConfig);
const callListenerSpy = jest.spyOn(experience.runtimeConfig, '_callKeySpecificListeners');
experience.runtimeConfig.set('visitor', { id: '123', idMethod: 'test' });
expect(callListenerSpy).toHaveBeenCalledWith('update', 'visitor');
});
});

0 comments on commit c653c95

Please sign in to comment.