Page MenuHomeWickedGov Phorge

pageviews.test.js
No OneTemporary

Size
1 KB
Referenced Files
None
Subscribers
None

pageviews.test.js

import pageviews from '../../../src/changeListeners/pageviews';
const REFERRER = 'https://en.m.wikipedia.org/wiki/Kittens',
newState = {
pageviews: {
page: {
id: 42,
namespaceId: 1,
title: 'Kittens',
url: REFERRER
},
pageview: {
/* eslint-disable camelcase */
page_id: 43,
page_namespace: 1,
page_title: 'Rainbows'
/* eslint-enable camelcase */
}
}
};
QUnit.module( 'ext.popups/pageviews', {
beforeEach() {
this.boundActions = {
pageviewLogged: this.sandbox.spy()
};
this.pageviewTracker = this.sandbox.spy();
this.changeListener = pageviews(
this.boundActions,
this.pageviewTracker
);
// Stub internal usage of mw.Title.newFromText
mw.Title.newFromText = ( str ) => {
return {
getPrefixedDb: () => {
return str;
}
};
};
}
} );
QUnit.test( 'it should log the queued event', function ( assert ) {
this.changeListener( undefined, newState );
assert.true(
this.pageviewTracker.calledWith(
'event.VirtualPageView',
{
/* eslint-disable camelcase */
source_page_id: 42,
source_namespace: 1,
source_title: 'Kittens',
source_url: REFERRER,
page_id: 43,
page_namespace: 1,
page_title: 'Rainbows'
/* eslint-enable camelcase */
}
),
'Event is logged with the current page context'
);
assert.true(
this.boundActions.pageviewLogged.called,
'When logged an action is taken to unqueue the pageview'
);
} );
QUnit.test( 'it should not log something that is not a pageview', function ( assert ) {
const noPageviewState = Object.assign( {}, newState );
delete noPageviewState.pageviews.pageview;
this.changeListener( undefined, newState );
assert.false(
this.pageviewTracker.called,
'No pageview tracked'
);
assert.false(
this.boundActions.pageviewLogged.called,
'No action taken'
);
} );

File Metadata

Mime Type
text/x-java
Expires
Aug 17 2026, 08:45 (11 w, 2 d ago)
Storage Engine
local-disk
Storage Format
Raw Data
Storage Handle
d3/d1/3add88c014d667804cbdfd24f1f3
Default Alt Text
pageviews.test.js (1 KB)

Event Timeline