6a7d6cec70
Production Umami rejects password login when MEMIND_UMAMI_SSO_ONLY=1; server-side memind-pages fetch now authenticates via MEMIND_UMAMI_SSO_SECRET. Co-authored-by: Cursor <cursoragent@cursor.com>
35 lines
1.1 KiB
JavaScript
35 lines
1.1 KiB
JavaScript
import assert from 'node:assert/strict';
|
|
import test from 'node:test';
|
|
|
|
import { fetchMemindDiscoveryPages } from './umami-analytics.mjs';
|
|
|
|
test('fetchMemindDiscoveryPages rejects invalid discoveryChannel', async () => {
|
|
await assert.rejects(
|
|
() => fetchMemindDiscoveryPages(
|
|
{ discoveryChannel: 'direct' },
|
|
{ env: { UMAMI_ADMIN_PASSWORD: 'secret' }, analyticsConfig: { websiteId: 'site-1' } },
|
|
),
|
|
/discoveryChannel 必须是 seo 或 geo/,
|
|
);
|
|
});
|
|
|
|
test('fetchMemindDiscoveryPages rejects missing website id', async () => {
|
|
await assert.rejects(
|
|
() => fetchMemindDiscoveryPages(
|
|
{ discoveryChannel: 'seo', startAt: '1', endAt: '2' },
|
|
{ env: { UMAMI_ADMIN_PASSWORD: 'secret' }, analyticsConfig: {} },
|
|
),
|
|
/未配置 Umami Website ID/,
|
|
);
|
|
});
|
|
|
|
test('fetchMemindDiscoveryPages rejects missing auth credentials', async () => {
|
|
await assert.rejects(
|
|
() => fetchMemindDiscoveryPages(
|
|
{ discoveryChannel: 'geo', startAt: '1', endAt: '2' },
|
|
{ env: {}, analyticsConfig: { websiteId: 'site-1' } },
|
|
),
|
|
/未配置 UMAMI_ADMIN_PASSWORD 或 MEMIND_UMAMI_SSO_SECRET/,
|
|
);
|
|
});
|