This repository has no description
Something went wrong. Try again.
123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114// SPDX-License-Identifier: AGPL-3.0-or-later
import {GuildFeatures} from '@fluxer/constants/src/GuildConstants';import {describe, expect, test} from 'vitest';import {createGuildID, createUserID} from '../../BrandedTypes';import type {GuildRow} from '../../database/types/GuildTypes';import {Guild} from '../../models/Guild';import {mapGuildToGuildResponse, mapGuildToPartialResponse} from '../GuildModel';
function createGuild(overrides: Partial<GuildRow> = {}): Guild { return new Guild({ guild_id: createGuildID(100n), owner_id: createUserID(200n), name: 'Test Guild', vanity_url_code: null, icon_hash: null, banner_hash: null, banner_width: null, banner_height: null, splash_hash: null, splash_width: null, splash_height: null, splash_card_alignment: null, embed_splash_hash: null, embed_splash_width: null, embed_splash_height: null, features: null, verification_level: 0, mfa_level: 0, nsfw_level: 0, nsfw: false, content_warning_level: 0, content_warning_text: null, explicit_content_filter: 0, default_message_notifications: 0, system_channel_id: null, system_channel_flags: 0, rules_channel_id: null, afk_channel_id: null, afk_timeout: 0, disabled_operations: 0, member_count: 0, audit_logs_indexed_at: null, members_indexed_at: null, message_history_cutoff: null, version: 1, ...overrides, });}
describe('GuildModel asset entitlement mapping', () => { test('strips animated guild icon prefix when ANIMATED_ICON is absent', () => { const guild = createGuild({icon_hash: 'a_icon123', features: new Set()}); expect(mapGuildToPartialResponse(guild).icon).toBe('icon123'); expect(mapGuildToGuildResponse(guild).icon).toBe('icon123'); }); test('keeps animated guild icon prefix when ANIMATED_ICON is present', () => { const guild = createGuild({icon_hash: 'a_icon123', features: new Set([GuildFeatures.ANIMATED_ICON])}); expect(mapGuildToPartialResponse(guild).icon).toBe('a_icon123'); expect(mapGuildToGuildResponse(guild).icon).toBe('a_icon123'); }); test('hides banners and dimensions when BANNER is absent', () => { const guild = createGuild({ banner_hash: 'banner123', banner_width: 1024, banner_height: 512, features: new Set(), }); const partial = mapGuildToPartialResponse(guild); const full = mapGuildToGuildResponse(guild); expect(partial.banner).toBeNull(); expect(partial.banner_width).toBeNull(); expect(partial.banner_height).toBeNull(); expect(full.banner).toBeNull(); expect(full.banner_width).toBeNull(); expect(full.banner_height).toBeNull(); }); test('strips animated guild banner prefix when ANIMATED_BANNER is absent', () => { const guild = createGuild({ banner_hash: 'a_banner123', banner_width: 1024, banner_height: 512, features: new Set([GuildFeatures.BANNER]), }); expect(mapGuildToPartialResponse(guild).banner).toBe('banner123'); expect(mapGuildToGuildResponse(guild).banner).toBe('banner123'); }); test('hides invite splashes and dimensions when INVITE_SPLASH is absent', () => { const guild = createGuild({ splash_hash: 'splash123', splash_width: 1024, splash_height: 512, embed_splash_hash: 'embed123', embed_splash_width: 1024, embed_splash_height: 512, features: new Set(), }); const partial = mapGuildToPartialResponse(guild); const full = mapGuildToGuildResponse(guild); expect(partial.splash).toBeNull(); expect(partial.splash_width).toBeNull(); expect(partial.splash_height).toBeNull(); expect(partial.embed_splash).toBeNull(); expect(partial.embed_splash_width).toBeNull(); expect(partial.embed_splash_height).toBeNull(); expect(full.splash).toBeNull(); expect(full.splash_width).toBeNull(); expect(full.splash_height).toBeNull(); expect(full.embed_splash).toBeNull(); expect(full.embed_splash_width).toBeNull(); expect(full.embed_splash_height).toBeNull(); });});