mirror of
https://github.com/djdevin/recflare.git
synced 2026-09-08 14:41:28 -07:00
178d3b5b0e
* [auth][api] accept the 20250424.01 client * [2025] unstable * 20250718.0 * correct one this time * stubs * more stubs * more stubs * [lists] add worker * [ai] route stubs * [api] player photo setting * [econ] add roomEconConfig route * [infra] update worker generators * [worker] add cards/moderation/platformnotification workers * [lists] updates to some endpoints * [clubs] stub out announcement endpoint, for now * [econ] stub out season endpoints for now * [chat] apps/chat stub out party endpoint not sure the shape yet * [api] stub out statsig and lockeditems * [doc] new services * [lists] stub the bulk endpoint * [datacollection] add placeholder service until we can kill it * [api] set gifting to lvl5 * update lock * [cdn] enable cache * [match] matchmake v2 * [lists] stub some lists * [ai] stubs * [rooms] new subroom save endpoint * [econ] add bulk purchase endpoint * [discovery] update featured creator to 1 for fun * [api] add photo settings flag * [chat] fixup chat permissions (sorta) * [auth] restrictions endpoint * [rooms] contributed endpoint * [api] fix outfit endpoint * [discovery] attempt to fix store * [chat] privacy endpoints * [api] cheered images * [rooms] add xp endpoint (disbaled) * [rooms] add xp endpoint (disabled) * update images-db for cheers * [rooms] add autocomplete endpoint * [cdn/img] increase cache ttl for statics * [api] bulk route for images * [accounts] add banner image * [api] add misc missing endpoints * [discovery] remove AI tab * [platformnotifications] stub some endpoints * [lists] add some more lists * [rooms] additional endpoints * [chat] stub a few privacy endpoints * [econ] stub some endpoints * misc db fixes * [api] tweak shape for images v6 * [rooms] dont show trending RROs
53 lines
1.9 KiB
TypeScript
53 lines
1.9 KiB
TypeScript
import { cloudflareTest } from '@cloudflare/vitest-pool-workers'
|
|
import { defineConfig } from 'vitest/config'
|
|
|
|
export default defineConfig({
|
|
plugins: [
|
|
cloudflareTest({
|
|
wrangler: { configPath: `${__dirname}/wrangler.jsonc` },
|
|
miniflare: {
|
|
bindings: {
|
|
ENVIRONMENT: 'VITEST',
|
|
},
|
|
// The worker's RECFLARE_NOTIFICATIONS_HUB binding points at the `notify`
|
|
// worker's DO (script_name: "notify"). That worker isn't part of this
|
|
// isolated test, so provide a minimal stub service exposing the same
|
|
// NotificationsHub RPC surface — enough for the runtime to start and for
|
|
// notification sends to no-op.
|
|
workers: [
|
|
{
|
|
name: 'notify',
|
|
modules: true,
|
|
compatibilityDate: '2026-06-16',
|
|
compatibilityFlags: ['nodejs_compat'],
|
|
durableObjects: { RECFLARE_NOTIFICATIONS_HUB: 'NotificationsHub' },
|
|
// notifyPlayer records every call so a test can assert the AccountUpdate the
|
|
// worker pushed (who it went to, and the payload it carried). GET the DO for
|
|
// the most recent one, GET /all for the whole list, DELETE to reset.
|
|
script: `
|
|
import { DurableObject } from 'cloudflare:workers'
|
|
export class NotificationsHub extends DurableObject {
|
|
sent = []
|
|
async notifyPlayer(playerId, notificationType, data) {
|
|
this.sent.push({ playerId, notificationType, data })
|
|
return { delivered: 0, queued: true }
|
|
}
|
|
async broadcast() { return { delivered: 0 } }
|
|
async fetch(request) {
|
|
if (request.method === 'DELETE') {
|
|
this.sent = []
|
|
return new Response(null, { status: 204 })
|
|
}
|
|
if (new URL(request.url).pathname === '/all') return Response.json(this.sent)
|
|
return Response.json(this.sent.at(-1) ?? null)
|
|
}
|
|
}
|
|
export default { fetch() { return new Response('ok') } }
|
|
`,
|
|
},
|
|
],
|
|
},
|
|
}),
|
|
],
|
|
})
|