chadtmiller.com/pds.js
An atproto PDS in JavaScript, for Cloudflare Workers and Node
0
0
import { describe, expect, it } from 'vitest';
import { identicon } from '../src/lib/avatars.js';
describe('identicon', () => {
it('draws the same picture for the same identity', () => {
expect(identicon('did:plc:abc')).toBe(identicon('did:plc:abc'));
});
it('draws different pictures for different identities', () => {
expect(identicon('did:plc:abc')).not.toBe(identicon('did:plc:xyz'));
});
it('is an SVG data URI with a mirrored pattern', () => {
const uri = identicon('did:plc:abc');
expect(uri.startsWith('data:image/svg+xml,')).toBe(true);
const svg = decodeURIComponent(uri.slice('data:image/svg+xml,'.length));
expect(svg).toContain('<svg');
expect(svg).toContain('<rect');
});
it('shows something even for an empty key', () => {
const svg = decodeURIComponent(
identicon('').slice('data:image/svg+xml,'.length),
);
expect(svg).toContain('<g fill=');
expect(svg.match(/<rect/g)?.length).toBeGreaterThan(1);
});
});