Skip to content

Commit fdd804a

Browse files
committed
chore: add test
1 parent 2e15e2d commit fdd804a

2 files changed

Lines changed: 48 additions & 2 deletions

File tree

src/ui/apiBase.ts

Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,11 @@
1-
const strip = (s: string) => s.replace(/\/+$/, '');
1+
const stripTrailingSlashes = (s: string) => s.replace(/\/+$/, '');
2+
23
/**
34
* The base URL for API requests.
45
*
56
* Uses the `VITE_API_URI` environment variable if set, otherwise defaults to the current origin.
67
* @return {string} The base URL to use for API requests.
78
*/
8-
export const API_BASE = process.env.VITE_API_URI ? strip(process.env.VITE_API_URI) : '';
9+
export const API_BASE = process.env.VITE_API_URI
10+
? stripTrailingSlashes(process.env.VITE_API_URI)
11+
: '';

test/ui/apiBase.test.js

Lines changed: 43 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,43 @@
1+
const { expect } = require('chai');
2+
3+
// Helper to reload the module fresh each time
4+
function loadApiBase() {
5+
delete require.cache[require.resolve('../../src/ui/apiBase')];
6+
return require('../../src/ui/apiBase');
7+
}
8+
9+
describe('apiBase', () => {
10+
let originalEnv;
11+
12+
beforeEach(() => {
13+
originalEnv = process.env.VITE_API_URI;
14+
delete process.env.VITE_API_URI;
15+
delete require.cache[require.resolve('../../src/ui/apiBase')];
16+
});
17+
18+
afterEach(() => {
19+
if (typeof originalEnv === 'undefined') {
20+
delete process.env.VITE_API_URI;
21+
} else {
22+
process.env.VITE_API_URI = originalEnv;
23+
}
24+
delete require.cache[require.resolve('../../src/ui/apiBase')];
25+
});
26+
27+
it('uses empty string when VITE_API_URI is not set', () => {
28+
const { API_BASE } = loadApiBase();
29+
expect(API_BASE).to.equal('');
30+
});
31+
32+
it('returns the exact value when no trailing slash', () => {
33+
process.env.VITE_API_URI = 'https://example.com';
34+
const { API_BASE } = loadApiBase();
35+
expect(API_BASE).to.equal('https://example.com');
36+
});
37+
38+
it('strips trailing slashes from VITE_API_URI', () => {
39+
process.env.VITE_API_URI = 'https://example.com////';
40+
const { API_BASE } = loadApiBase();
41+
expect(API_BASE).to.equal('https://example.com');
42+
});
43+
});

0 commit comments

Comments
 (0)