11import should from 'should' ;
22import sinon from 'sinon' ;
3- import { describe , it , beforeEach , afterEach } from 'vitest' ;
4- import { ReferrerParser , ReferrerData , ParserOptions } from '../lib/ReferrerParser' ;
3+ import { describe , it , beforeEach , afterEach } from 'vitest' ;
4+ import { ReferrerParser } from '../lib/ReferrerParser' ;
55
66// Helper function to safely assert on properties that might be null
77function assertPropertyEquals ( obj : any , property : string , expectedValue : any ) {
88 should . exist ( obj ) ;
9-
9+
1010 if ( expectedValue === null ) {
1111 should . equal ( obj [ property ] , null ) ;
1212 } else {
@@ -94,7 +94,7 @@ describe('ReferrerParser', () => {
9494 pathname : '/test' ,
9595 search : '?utm_source=ghost-explore'
9696 } as URL ) ;
97-
97+
9898 // Stub isGhostExploreRef to return true
9999 sandbox . stub ( parser , 'isGhostExploreRef' ) . returns ( true ) ;
100100
@@ -108,7 +108,7 @@ describe('ReferrerParser', () => {
108108 it ( 'detects Ghost Explore from admin URL' , ( ) => {
109109 // Create a controlled test environment
110110 sandbox . stub ( parser , 'isGhostExploreRef' ) . returns ( true ) ;
111-
111+
112112 const result = parser . parse ( 'https://admin.example.com/ghost/#/dashboard' ) ;
113113 should . exist ( result ) ;
114114 assertPropertyEquals ( result , 'referrerSource' , 'Ghost Explore' ) ;
@@ -119,7 +119,7 @@ describe('ReferrerParser', () => {
119119 it ( 'detects Ghost Explore from ghost.org/explore' , ( ) => {
120120 // Create a controlled test environment
121121 sandbox . stub ( parser , 'isGhostExploreRef' ) . returns ( true ) ;
122-
122+
123123 const result = parser . parse ( 'https://ghost.org/explore/test' ) ;
124124 should . exist ( result ) ;
125125 assertPropertyEquals ( result , 'referrerSource' , 'Ghost Explore' ) ;
@@ -131,7 +131,7 @@ describe('ReferrerParser', () => {
131131 // Create a controlled test environment
132132 sandbox . stub ( parser , 'isGhostOrgUrl' ) . returns ( true ) ;
133133 sandbox . stub ( parser , 'isGhostExploreRef' ) . returns ( false ) ;
134-
134+
135135 const result = parser . parse ( 'https://ghost.org/pricing/' ) ;
136136 should . exist ( result ) ;
137137 assertPropertyEquals ( result , 'referrerSource' , 'Ghost.org' ) ;
@@ -147,7 +147,7 @@ describe('ReferrerParser', () => {
147147 sandbox . stub ( parser , 'isGhostOrgUrl' ) . returns ( false ) ;
148148 sandbox . stub ( parser , 'isGhostExploreRef' ) . returns ( false ) ;
149149 sandbox . stub ( parser , 'isGhostNewsletter' ) . returns ( true ) ;
150-
150+
151151 const result = parser . parse ( 'https://test.com/test?utm_source=test-newsletter' ) ;
152152 should . exist ( result ) ;
153153 // Now only the -newsletter suffix is replaced with a space
@@ -161,11 +161,11 @@ describe('ReferrerParser', () => {
161161 sandbox . stub ( parser , 'isGhostOrgUrl' ) . returns ( false ) ;
162162 sandbox . stub ( parser , 'isGhostExploreRef' ) . returns ( false ) ;
163163 sandbox . stub ( parser , 'isGhostNewsletter' ) . returns ( false ) ;
164-
164+
165165 // Mock the URL and URLSearchParams
166166 const url = new URL ( 'https://test.com/test?utm_source=twitter&utm_medium=social' ) ;
167167 sandbox . stub ( parser , 'getUrlFromStr' ) . returns ( url ) ;
168-
168+
169169 const result = parser . parse ( 'https://test.com/test?utm_source=twitter&utm_medium=social' , 'twitter' ) ;
170170 should . exist ( result ) ;
171171 assertPropertyEquals ( result , 'referrerSource' , 'Twitter' ) ;
@@ -179,13 +179,13 @@ describe('ReferrerParser', () => {
179179 sandbox . stub ( parser , 'isGhostExploreRef' ) . returns ( false ) ;
180180 sandbox . stub ( parser , 'isGhostNewsletter' ) . returns ( false ) ;
181181 sandbox . stub ( parser , 'isSiteDomain' ) . returns ( false ) ;
182-
182+
183183 // Mock the getDataFromUrl to return known referrer data
184184 sandbox . stub ( parser , 'getDataFromUrl' ) . returns ( {
185185 source : 'Google' ,
186186 medium : 'search'
187187 } ) ;
188-
188+
189189 const result = parser . parse ( 'https://www.google.com/search?q=ghost+cms' ) ;
190190 should . exist ( result ) ;
191191 assertPropertyEquals ( result , 'referrerSource' , 'Google' ) ;
@@ -199,14 +199,14 @@ describe('ReferrerParser', () => {
199199 sandbox . stub ( parser , 'isGhostExploreRef' ) . returns ( false ) ;
200200 sandbox . stub ( parser , 'isGhostNewsletter' ) . returns ( false ) ;
201201 sandbox . stub ( parser , 'isSiteDomain' ) . returns ( false ) ;
202-
202+
203203 // Mock the getDataFromUrl to return null for unknown referrer
204204 sandbox . stub ( parser , 'getDataFromUrl' ) . returns ( null ) ;
205-
205+
206206 // Mock URL object
207207 const url = new URL ( 'https://unknown-referrer.com/path' ) ;
208208 sandbox . stub ( parser , 'getUrlFromStr' ) . returns ( url ) ;
209-
209+
210210 const result = parser . parse ( 'https://unknown-referrer.com/path' ) ;
211211 should . exist ( result ) ;
212212 assertPropertyEquals ( result , 'referrerSource' , 'unknown-referrer.com' ) ;
@@ -220,7 +220,7 @@ describe('ReferrerParser', () => {
220220 sandbox . stub ( parser , 'isGhostExploreRef' ) . returns ( false ) ;
221221 sandbox . stub ( parser , 'isGhostNewsletter' ) . returns ( false ) ;
222222 sandbox . stub ( parser , 'isSiteDomain' ) . returns ( true ) ;
223-
223+
224224 const result = parser . parse ( 'https://example.com/blog' ) ;
225225 should . exist ( result ) ;
226226 assertPropertyEquals ( result , 'referrerSource' , null ) ;
@@ -234,7 +234,7 @@ describe('ReferrerParser', () => {
234234 const leverParser = new ReferrerParser ( {
235235 siteUrl : 'https://www.levernews.com'
236236 } ) ;
237-
237+
238238 const result = leverParser . parse ( 'https://levernews.com/article' ) ;
239239 should . exist ( result ) ;
240240 assertPropertyEquals ( result , 'referrerSource' , null ) ;
@@ -406,19 +406,19 @@ describe('ReferrerParser', () => {
406406 describe ( 'isGhostNewsletter' , ( ) => {
407407 it ( 'returns false for null source' , ( ) => {
408408 const parser = new ReferrerParser ( ) ;
409- const result = parser . isGhostNewsletter ( { referrerSource : null } ) ;
409+ const result = parser . isGhostNewsletter ( { referrerSource : null } ) ;
410410 should . equal ( result , false ) ;
411411 } ) ;
412412
413413 it ( 'returns true for sources ending with -newsletter' , ( ) => {
414414 const parser = new ReferrerParser ( ) ;
415- const result = parser . isGhostNewsletter ( { referrerSource : 'test-newsletter' } ) ;
415+ const result = parser . isGhostNewsletter ( { referrerSource : 'test-newsletter' } ) ;
416416 should . equal ( result , true ) ;
417417 } ) ;
418418
419419 it ( 'returns false for other sources' , ( ) => {
420420 const parser = new ReferrerParser ( ) ;
421- const result = parser . isGhostNewsletter ( { referrerSource : 'test' } ) ;
421+ const result = parser . isGhostNewsletter ( { referrerSource : 'test' } ) ;
422422 should . equal ( result , false ) ;
423423 } ) ;
424424 } ) ;
@@ -492,4 +492,4 @@ describe('ReferrerParser', () => {
492492 should . equal ( result , true ) ;
493493 } ) ;
494494 } ) ;
495- } ) ;
495+ } ) ;
0 commit comments