Mega push vol 5, working on messaging now

This commit is contained in:
AlacrisDevs
2026-02-07 01:31:55 +02:00
parent d8bbfd9dc3
commit e55881b38b
77 changed files with 8478 additions and 1554 deletions

View File

@@ -0,0 +1,61 @@
import { describe, it, expect } from 'vitest';
import { extractCalendarId, getCalendarSubscribeUrl } from './google-calendar';
describe('extractCalendarId', () => {
it('returns null for empty input', () => {
expect(extractCalendarId('')).toBeNull();
});
it('returns email-style calendar ID as-is', () => {
expect(extractCalendarId('user@gmail.com')).toBe('user@gmail.com');
});
it('trims whitespace from email-style IDs', () => {
expect(extractCalendarId(' user@gmail.com ')).toBe('user@gmail.com');
});
it('returns group calendar ID as-is', () => {
const id = 'abc123@group.calendar.google.com';
expect(extractCalendarId(id)).toBe(id);
});
it('extracts calendar ID from cid parameter (base64)', () => {
const calId = 'user@gmail.com';
const encoded = btoa(calId);
const url = `https://calendar.google.com/calendar/u/0?cid=${encoded}`;
expect(extractCalendarId(url)).toBe(calId);
});
it('extracts calendar ID from src parameter', () => {
const url = 'https://calendar.google.com/calendar/embed?src=user@gmail.com';
expect(extractCalendarId(url)).toBe('user@gmail.com');
});
it('extracts calendar ID from ical path', () => {
const url = 'https://calendar.google.com/calendar/ical/user%40gmail.com/public/basic.ics';
expect(extractCalendarId(url)).toBe('user@gmail.com');
});
it('returns null for non-URL non-email input', () => {
expect(extractCalendarId('random-string')).toBeNull();
});
it('handles URL without recognized parameters', () => {
expect(extractCalendarId('https://example.com/page')).toBeNull();
});
});
describe('getCalendarSubscribeUrl', () => {
it('generates a subscribe URL with base64-encoded calendar ID', () => {
const calId = 'user@gmail.com';
const url = getCalendarSubscribeUrl(calId);
expect(url).toContain('https://calendar.google.com/calendar/u/0?cid=');
expect(url).toContain(btoa(calId));
});
it('roundtrips with extractCalendarId', () => {
const calId = 'test@group.calendar.google.com';
const url = getCalendarSubscribeUrl(calId);
expect(extractCalendarId(url)).toBe(calId);
});
});