shlink-web-client/test/visits/services/VisitsParser.test.js
2019-01-07 11:53:14 +01:00

95 lines
2.5 KiB
JavaScript

import {
processOsStats,
processBrowserStats,
processReferrersStats,
processCountriesStats,
processCitiesStats,
} from '../../../src/visits/services/VisitsParser';
describe('VisitsParser', () => {
const visits = [
{
userAgent: 'Mozilla/5.0 (Windows NT 6.1; Win64; x64; rv:47.0) Gecko/20100101 Firefox/47.0',
referer: 'https://google.com',
visitLocation: {
countryName: 'Spain',
cityName: 'Zaragoza',
},
},
{
userAgent: 'Mozilla/5.0 (Macintosh; Intel Mac OS X x.y; rv:42.0) Gecko/20100101 Firefox/42.0',
referer: 'https://google.com',
visitLocation: {
countryName: 'United States',
cityName: 'New York',
},
},
{
userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36',
visitLocation: {
countryName: 'Spain',
},
},
{
userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.103 Safari/537.36',
referer: 'https://m.facebook.com',
visitLocation: {
countryName: 'Spain',
cityName: 'Zaragoza',
},
},
{
userAgent: 'Mozilla/5.0 (X11; Linux x86_64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/51.0.2704.106 Safari/537.36 OPR/38.0.2220.41',
},
];
describe('processOsStats', () => {
it('properly parses OS stats', () => {
expect(processOsStats(visits)).toEqual({
Linux: 3,
Windows: 1,
MacOS: 1,
});
});
});
describe('processBrowserStats', () => {
it('properly parses browser stats', () => {
expect(processBrowserStats(visits)).toEqual({
Firefox: 2,
Chrome: 2,
Opera: 1,
});
});
});
describe('processReferrersStats', () => {
it('properly parses referrer stats', () => {
expect(processReferrersStats(visits)).toEqual({
'Unknown': 2,
'google.com': 2,
'm.facebook.com': 1,
});
});
});
describe('processCountriesStats', () => {
it('properly parses countries stats', () => {
expect(processCountriesStats(visits)).toEqual({
'Spain': 3,
'United States': 1,
'Unknown': 1,
});
});
});
describe('processCitiesStats', () => {
it('properly parses cities stats', () => {
expect(processCitiesStats(visits)).toEqual({
'Zaragoza': 2,
'New York': 1,
'Unknown': 2,
});
});
});
});