@@ -3,6 +3,8 @@ import { describe, it } from "node:test";
33import {
44 COLLECT_PATH ,
55 ORIGIN_COLLECT ,
6+ SCRIPT_PATH ,
7+ TRACKER_COLLECT_SUFFIX ,
68 matchProxyPath ,
79 originBase ,
810 rewriteTrackerScript ,
@@ -21,14 +23,29 @@ describe("originBase", () => {
2123} ) ;
2224
2325describe ( "rewriteTrackerScript" , ( ) => {
24- it ( "points collect calls at the same-origin path " , ( ) => {
26+ it ( "points collect calls at the same-origin collector suffix " , ( ) => {
2527 const src = `fetch("${ ORIGIN_COLLECT } ",{method:"POST"})` ;
26- assert . equal ( rewriteTrackerScript ( src ) , `fetch("${ COLLECT_PATH } ",{method:"POST"})` ) ;
28+ assert . equal (
29+ rewriteTrackerScript ( src ) ,
30+ `fetch("${ TRACKER_COLLECT_SUFFIX } ",{method:"POST"})` ,
31+ ) ;
2732 } ) ;
2833
2934 it ( "rewrites every occurrence" , ( ) => {
3035 const src = `${ ORIGIN_COLLECT } ${ ORIGIN_COLLECT } ` ;
31- assert . equal ( rewriteTrackerScript ( src ) , `${ COLLECT_PATH } ${ COLLECT_PATH } ` ) ;
36+ assert . equal (
37+ rewriteTrackerScript ( src ) ,
38+ `${ TRACKER_COLLECT_SUFFIX } ${ TRACKER_COLLECT_SUFFIX } ` ,
39+ ) ;
40+ } ) ;
41+
42+ it ( "makes the tracker's script-relative collector resolve to the public endpoint" , ( ) => {
43+ const trackerBase = new URL ( SCRIPT_PATH , "https://kc.chtnnhfoundation.org" ) . href
44+ . split ( "/" )
45+ . slice ( 0 , - 1 )
46+ . join ( "/" ) ;
47+ assert . equal ( `${ trackerBase } ${ TRACKER_COLLECT_SUFFIX } ` , "https://kc.chtnnhfoundation.org/s/e" ) ;
48+ assert . equal ( `${ trackerBase } ${ COLLECT_PATH } ` , "https://kc.chtnnhfoundation.org/s/s/e" ) ;
3249 } ) ;
3350
3451 it ( "does not rewrite other Umami routes" , ( ) => {
0 commit comments