11import assert from 'node:assert/strict' ;
2- import { describe , it } from 'node:test' ;
2+ import { beforeEach , describe , it } from 'node:test' ;
33
4- import { setConfig } from '../../../../utils/configuration/index.mjs' ;
4+ import {
5+ setConfig ,
6+ default as getConfig ,
7+ } from '../../../../utils/configuration/index.mjs' ;
58import { relativeOrAbsolute } from '../relativeOrAbsolute.mjs' ;
69
710await setConfig ( {
@@ -15,10 +18,14 @@ await setConfig({
1518 } ,
1619} ) ;
1720
18- describe ( 'relativeOrAbsolute (relative mode)' , async ( ) => {
21+ describe ( 'relativeOrAbsolute (relative mode)' , ( ) => {
22+ beforeEach ( ( ) => {
23+ getConfig ( 'web' ) . useAbsoluteURLs = false ;
24+ } ) ;
25+
1926 it ( 'returns a relative path from a nested page to root' , ( ) => {
2027 const result = relativeOrAbsolute ( '/' , '/api/fs' ) ;
21- assert . strictEqual ( result , '../.. ' ) ;
28+ assert . strictEqual ( result , '..' ) ;
2229 } ) ;
2330
2431 it ( 'returns a relative path between sibling pages' , ( ) => {
@@ -28,34 +35,23 @@ describe('relativeOrAbsolute (relative mode)', async () => {
2835
2936 it ( 'returns a relative path for a deeper target' , ( ) => {
3037 const result = relativeOrAbsolute ( '/orama-db.json' , '/api/fs' ) ;
31- assert . strictEqual ( result , '../../ orama-db.json' ) ;
38+ assert . strictEqual ( result , '../orama-db.json' ) ;
3239 } ) ;
3340
3441 it ( 'returns "." when source and target resolve to the same path' , ( ) => {
35- const result = relativeOrAbsolute ( '/fs ' , '/fs ' ) ;
42+ const result = relativeOrAbsolute ( '/' , '/' ) ;
3643 assert . strictEqual ( result , '.' ) ;
3744 } ) ;
3845} ) ;
3946
40- describe ( 'relativeOrAbsolute (absolute mode)' , async ( ) => {
41- await setConfig ( {
42- version : 'v22.0.0' ,
43- changelog : [ ] ,
44- generators : {
45- web : {
46- useAbsoluteURLs : true ,
47- baseURL : 'https://nodejs.org/docs' ,
48- } ,
49- } ,
47+ describe ( 'relativeOrAbsolute (absolute mode)' , ( ) => {
48+ beforeEach ( ( ) => {
49+ getConfig ( 'web' ) . useAbsoluteURLs = true ;
5050 } ) ;
5151
52- // Cache-busting query param to get a fresh module with new config
53- const { relativeOrAbsolute } =
54- await import ( '../relativeOrAbsolute.mjs?absolute' ) ;
55-
5652 it ( 'returns an absolute URL to root' , ( ) => {
5753 const result = relativeOrAbsolute ( '/' , '/api/fs' ) ;
58- assert . strictEqual ( result , 'https://nodejs.org/docs/ ' ) ;
54+ assert . strictEqual ( result , 'https://nodejs.org/docs' ) ;
5955 } ) ;
6056
6157 it ( 'returns an absolute URL for a page path' , ( ) => {
@@ -67,23 +63,4 @@ describe('relativeOrAbsolute (absolute mode)', async () => {
6763 const result = relativeOrAbsolute ( '/orama-db.json' , '/api/fs' ) ;
6864 assert . strictEqual ( result , 'https://nodejs.org/docs/orama-db.json' ) ;
6965 } ) ;
70-
71- it ( 'strips trailing slash from baseURL before joining' , async ( ) => {
72- await setConfig ( {
73- version : 'v22.0.0' ,
74- changelog : [ ] ,
75- generators : {
76- web : {
77- useAbsoluteURLs : true ,
78- baseURL : 'https://nodejs.org/docs/' ,
79- } ,
80- } ,
81- } ) ;
82-
83- const { relativeOrAbsolute : roa } =
84- await import ( '../relativeOrAbsolute.mjs?trailing-slash' ) ;
85-
86- const result = roa ( '/fs' , '/http' ) ;
87- assert . strictEqual ( result , 'https://nodejs.org/docs/fs' ) ;
88- } ) ;
8966} ) ;
0 commit comments