TASKS-1823 WebManager module
This commit is contained in:
@@ -0,0 +1,37 @@
|
||||
import { afterEach, describe, expect, it, vi } from 'vitest';
|
||||
import { siteUrl } from '#web-runtime/lib/site-url';
|
||||
|
||||
afterEach(() => {
|
||||
vi.unstubAllEnvs();
|
||||
vi.restoreAllMocks();
|
||||
});
|
||||
|
||||
describe('siteUrl', () => {
|
||||
it('uses SITE_URL, trimming stray whitespace', () => {
|
||||
vi.stubEnv('SITE_URL', ' https://crux.example.com ');
|
||||
|
||||
expect(siteUrl().origin).toBe('https://crux.example.com');
|
||||
});
|
||||
|
||||
it('falls back to localhost for local development', () => {
|
||||
vi.stubEnv('SITE_URL', '');
|
||||
vi.stubEnv('NODE_ENV', 'development');
|
||||
|
||||
expect(siteUrl().origin).toBe('http://localhost:3000');
|
||||
});
|
||||
|
||||
it('complains loudly when a production build has none, since the symptom is silent', () => {
|
||||
const error = vi.spyOn(console, 'error').mockImplementation(() => {});
|
||||
vi.stubEnv('SITE_URL', '');
|
||||
vi.stubEnv('NODE_ENV', 'production');
|
||||
|
||||
expect(siteUrl().origin).toBe('http://localhost:3000');
|
||||
expect(error).toHaveBeenCalledOnce();
|
||||
});
|
||||
|
||||
it('throws on a malformed SITE_URL rather than building wrong canonicals', () => {
|
||||
vi.stubEnv('SITE_URL', 'crux.example.com');
|
||||
|
||||
expect(() => siteUrl()).toThrow();
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user