mirror of
https://gitlab.com/soapbox-pub/ditto.git
synced 2025-12-06 03:19:46 +00:00
67 lines
1.9 KiB
TypeScript
67 lines
1.9 KiB
TypeScript
import { TestApp } from '@ditto/mastoapi/test';
|
|
import { NSecSigner } from '@nostrify/nostrify';
|
|
import { genEvent } from '@nostrify/nostrify/test';
|
|
import { assertEquals } from '@std/assert';
|
|
import { generateSecretKey } from 'nostr-tools';
|
|
|
|
import route from './customEmojisRoute.ts';
|
|
|
|
Deno.test('customEmojisRoute', async (t) => {
|
|
await using test = new TestApp(route);
|
|
const { relay } = test.var;
|
|
|
|
const sk = generateSecretKey();
|
|
const user = test.user({ relay, signer: new NSecSigner(sk) });
|
|
const pubkey = await user.signer.getPublicKey();
|
|
|
|
await t.step('no emojis', async () => {
|
|
const response = await test.api.get('/');
|
|
const body = await response.json();
|
|
|
|
assertEquals(response.status, 200);
|
|
assertEquals(body, []);
|
|
});
|
|
|
|
await t.step('with emoji packs', async () => {
|
|
const pack = genEvent({
|
|
kind: 30030,
|
|
tags: [
|
|
['d', 'soapbox'],
|
|
['emoji', 'soapbox', 'https://soapbox.pub/favicon.ico'],
|
|
['emoji', 'ditto', 'https://ditto.pub/favicon.ico'],
|
|
],
|
|
}, sk);
|
|
|
|
const list = genEvent({
|
|
kind: 10030,
|
|
tags: [
|
|
['a', `30030:${pubkey}:soapbox`],
|
|
['emoji', 'gleasonator', 'https://gleasonator.dev/favicon.ico'],
|
|
],
|
|
}, sk);
|
|
|
|
await relay.event(pack);
|
|
await relay.event(list);
|
|
|
|
const response = await test.api.get('/');
|
|
const body = await response.json();
|
|
|
|
assertEquals(response.status, 200);
|
|
assertEquals(body, [{
|
|
shortcode: 'gleasonator',
|
|
url: 'https://gleasonator.dev/favicon.ico',
|
|
static_url: 'https://gleasonator.dev/favicon.ico',
|
|
visible_in_picker: true,
|
|
}, {
|
|
shortcode: 'soapbox',
|
|
url: 'https://soapbox.pub/favicon.ico',
|
|
static_url: 'https://soapbox.pub/favicon.ico',
|
|
visible_in_picker: true,
|
|
}, {
|
|
shortcode: 'ditto',
|
|
url: 'https://ditto.pub/favicon.ico',
|
|
static_url: 'https://ditto.pub/favicon.ico',
|
|
visible_in_picker: true,
|
|
}]);
|
|
});
|
|
});
|