diff --git a/packages/mastoapi/deno.json b/packages/mastoapi/deno.json index f9abac55..ddeb175f 100644 --- a/packages/mastoapi/deno.json +++ b/packages/mastoapi/deno.json @@ -2,6 +2,7 @@ "name": "@ditto/mastoapi", "version": "1.1.0", "exports": { - "./middleware": "./middleware/mod.ts" + "./middleware": "./middleware/mod.ts", + "./test": "./test.ts" } } diff --git a/packages/mastoapi/middleware/userMiddleware.test.ts b/packages/mastoapi/middleware/userMiddleware.test.ts index a72a5677..2d30b0dc 100644 --- a/packages/mastoapi/middleware/userMiddleware.test.ts +++ b/packages/mastoapi/middleware/userMiddleware.test.ts @@ -1,16 +1,9 @@ -import { DittoConf } from '@ditto/conf'; -import { DummyDB } from '@ditto/db'; -import { DittoApp, type DittoMiddleware } from '@ditto/router'; -import { type NostrSigner, NSecSigner } from '@nostrify/nostrify'; -import { MockRelay } from '@nostrify/nostrify/test'; +import { setUser, testApp } from '@ditto/mastoapi/test'; import { assertEquals } from '@std/assert'; -import { generateSecretKey, nip19 } from 'nostr-tools'; import { userMiddleware } from './userMiddleware.ts'; import { ReadOnlySigner } from '../signers/ReadOnlySigner.ts'; -import type { User } from './User.ts'; - Deno.test('no user 401', async () => { const { app } = testApp(); const response = await app.use(userMiddleware()).request('/'); @@ -79,21 +72,3 @@ Deno.test('admin role 200', async () => { assertEquals(response.status, 200); }); - -function testApp() { - const relay = new MockRelay(); - const signer = new NSecSigner(generateSecretKey()); - const conf = new DittoConf(new Map([['DITTO_NSEC', nip19.nsecEncode(generateSecretKey())]])); - const db = new DummyDB(); - const app = new DittoApp({ conf, relay, db }); - const user = { signer, relay }; - - return { app, relay, conf, db, user }; -} - -function setUser(user: User): DittoMiddleware<{ user: User }> { - return async (c, next) => { - c.set('user', user); - await next(); - }; -} diff --git a/packages/mastoapi/test.ts b/packages/mastoapi/test.ts new file mode 100644 index 00000000..70a5e1af --- /dev/null +++ b/packages/mastoapi/test.ts @@ -0,0 +1,32 @@ +import { DittoConf } from '@ditto/conf'; +import { DummyDB } from '@ditto/db'; +import { DittoApp, type DittoMiddleware } from '@ditto/router'; +import { type NostrSigner, NSecSigner } from '@nostrify/nostrify'; +import { MockRelay } from '@nostrify/nostrify/test'; +import { generateSecretKey, nip19 } from 'nostr-tools'; + +import type { User } from '@ditto/mastoapi/middleware'; + +export function testApp() { + const db = new DummyDB(); + + const nsec = nip19.nsecEncode(generateSecretKey()); + const conf = new DittoConf(new Map([['DITTO_NSEC', nsec]])); + + const relay = new MockRelay(); + const app = new DittoApp({ conf, relay, db }); + + const user = { + signer: new NSecSigner(generateSecretKey()), + relay, + }; + + return { app, relay, conf, db, user }; +} + +export function setUser(user: User): DittoMiddleware<{ user: User }> { + return async (c, next) => { + c.set('user', user); + await next(); + }; +}