11import { test , expect } from 'vitest' ;
22import { CDN } from '../src/index.js' ;
33
4- const base = 'https://discord.com' ;
4+ const baseCDN = 'https://cdn-discord.com' ;
5+ const baseMedia = 'https://media-discord.com' ;
56const id = '123456' ;
67const hash = 'abcdef' ;
78const animatedHash = 'a_bcdef' ;
89const defaultAvatar = 1_234 % 5 ;
910
10- const cdn = new CDN ( base ) ;
11+ const cdn = new CDN ( baseCDN , baseMedia ) ;
1112
1213test ( 'appAsset default' , ( ) => {
13- expect ( cdn . appAsset ( id , hash ) ) . toEqual ( `${ base } /app-assets/${ id } /${ hash } .webp` ) ;
14+ expect ( cdn . appAsset ( id , hash ) ) . toEqual ( `${ baseCDN } /app-assets/${ id } /${ hash } .webp` ) ;
1415} ) ;
1516
1617test ( 'appIcon default' , ( ) => {
17- expect ( cdn . appIcon ( id , hash ) ) . toEqual ( `${ base } /app-icons/${ id } /${ hash } .webp` ) ;
18+ expect ( cdn . appIcon ( id , hash ) ) . toEqual ( `${ baseCDN } /app-icons/${ id } /${ hash } .webp` ) ;
1819} ) ;
1920
2021test ( 'avatar default' , ( ) => {
21- expect ( cdn . avatar ( id , hash ) ) . toEqual ( `${ base } /avatars/${ id } /${ hash } .webp` ) ;
22+ expect ( cdn . avatar ( id , hash ) ) . toEqual ( `${ baseCDN } /avatars/${ id } /${ hash } .webp` ) ;
2223} ) ;
2324
2425test ( 'avatar dynamic-animated' , ( ) => {
25- expect ( cdn . avatar ( id , animatedHash ) ) . toEqual ( `${ base } /avatars/${ id } /${ animatedHash } .gif` ) ;
26+ expect ( cdn . avatar ( id , animatedHash ) ) . toEqual ( `${ baseCDN } /avatars/${ id } /${ animatedHash } .gif` ) ;
2627} ) ;
2728
2829test ( 'avatar dynamic-not-animated' , ( ) => {
29- expect ( cdn . avatar ( id , hash ) ) . toEqual ( `${ base } /avatars/${ id } /${ hash } .webp` ) ;
30+ expect ( cdn . avatar ( id , hash ) ) . toEqual ( `${ baseCDN } /avatars/${ id } /${ hash } .webp` ) ;
3031} ) ;
3132
3233test ( 'avatar decoration default' , ( ) => {
33- expect ( cdn . avatarDecoration ( id , hash ) ) . toEqual ( `${ base } /avatar-decorations/${ id } /${ hash } .webp` ) ;
34+ expect ( cdn . avatarDecoration ( id , hash ) ) . toEqual ( `${ baseCDN } /avatar-decorations/${ id } /${ hash } .webp` ) ;
3435} ) ;
3536
3637test ( 'avatar decoration preset' , ( ) => {
37- expect ( cdn . avatarDecoration ( hash ) ) . toEqual ( `${ base } /avatar-decoration-presets/${ hash } .png` ) ;
38+ expect ( cdn . avatarDecoration ( hash ) ) . toEqual ( `${ baseCDN } /avatar-decoration-presets/${ hash } .png` ) ;
3839} ) ;
3940
4041test ( 'banner default' , ( ) => {
41- expect ( cdn . banner ( id , hash ) ) . toEqual ( `${ base } /banners/${ id } /${ hash } .webp` ) ;
42+ expect ( cdn . banner ( id , hash ) ) . toEqual ( `${ baseCDN } /banners/${ id } /${ hash } .webp` ) ;
4243} ) ;
4344
4445test ( 'channelIcon default' , ( ) => {
45- expect ( cdn . channelIcon ( id , hash ) ) . toEqual ( `${ base } /channel-icons/${ id } /${ hash } .webp` ) ;
46+ expect ( cdn . channelIcon ( id , hash ) ) . toEqual ( `${ baseCDN } /channel-icons/${ id } /${ hash } .webp` ) ;
4647} ) ;
4748
4849test ( 'defaultAvatar default' , ( ) => {
49- expect ( cdn . defaultAvatar ( defaultAvatar ) ) . toEqual ( `${ base } /embed/avatars/${ defaultAvatar } .png` ) ;
50+ expect ( cdn . defaultAvatar ( defaultAvatar ) ) . toEqual ( `${ baseCDN } /embed/avatars/${ defaultAvatar } .png` ) ;
5051} ) ;
5152
5253test ( 'discoverySplash default' , ( ) => {
53- expect ( cdn . discoverySplash ( id , hash ) ) . toEqual ( `${ base } /discovery-splashes/${ id } /${ hash } .webp` ) ;
54+ expect ( cdn . discoverySplash ( id , hash ) ) . toEqual ( `${ baseCDN } /discovery-splashes/${ id } /${ hash } .webp` ) ;
5455} ) ;
5556
5657test ( 'emoji default' , ( ) => {
57- expect ( cdn . emoji ( id ) ) . toEqual ( `${ base } /emojis/${ id } .webp` ) ;
58+ expect ( cdn . emoji ( id ) ) . toEqual ( `${ baseCDN } /emojis/${ id } .webp` ) ;
5859} ) ;
5960
6061test ( 'emoji gif' , ( ) => {
61- expect ( cdn . emoji ( id , 'gif' ) ) . toEqual ( `${ base } /emojis/${ id } .gif` ) ;
62+ expect ( cdn . emoji ( id , 'gif' ) ) . toEqual ( `${ baseCDN } /emojis/${ id } .gif` ) ;
6263} ) ;
6364
6465test ( 'guildMemberAvatar default' , ( ) => {
65- expect ( cdn . guildMemberAvatar ( id , id , hash ) ) . toEqual ( `${ base } /guilds/${ id } /users/${ id } /avatars/${ hash } .webp` ) ;
66+ expect ( cdn . guildMemberAvatar ( id , id , hash ) ) . toEqual ( `${ baseCDN } /guilds/${ id } /users/${ id } /avatars/${ hash } .webp` ) ;
6667} ) ;
6768
6869test ( 'guildMemberAvatar dynamic-animated' , ( ) => {
6970 expect ( cdn . guildMemberAvatar ( id , id , animatedHash ) ) . toEqual (
70- `${ base } /guilds/${ id } /users/${ id } /avatars/${ animatedHash } .gif` ,
71+ `${ baseCDN } /guilds/${ id } /users/${ id } /avatars/${ animatedHash } .gif` ,
7172 ) ;
7273} ) ;
7374
7475test ( 'guildMemberAvatar dynamic-not-animated' , ( ) => {
75- expect ( cdn . guildMemberAvatar ( id , id , hash ) ) . toEqual ( `${ base } /guilds/${ id } /users/${ id } /avatars/${ hash } .webp` ) ;
76+ expect ( cdn . guildMemberAvatar ( id , id , hash ) ) . toEqual ( `${ baseCDN } /guilds/${ id } /users/${ id } /avatars/${ hash } .webp` ) ;
7677} ) ;
7778
7879test ( 'guildScheduledEventCover default' , ( ) => {
79- expect ( cdn . guildScheduledEventCover ( id , hash ) ) . toEqual ( `${ base } /guild-events/${ id } /${ hash } .webp` ) ;
80+ expect ( cdn . guildScheduledEventCover ( id , hash ) ) . toEqual ( `${ baseCDN } /guild-events/${ id } /${ hash } .webp` ) ;
8081} ) ;
8182
8283test ( 'icon default' , ( ) => {
83- expect ( cdn . icon ( id , hash ) ) . toEqual ( `${ base } /icons/${ id } /${ hash } .webp` ) ;
84+ expect ( cdn . icon ( id , hash ) ) . toEqual ( `${ baseCDN } /icons/${ id } /${ hash } .webp` ) ;
8485} ) ;
8586
8687test ( 'icon dynamic-animated' , ( ) => {
87- expect ( cdn . icon ( id , animatedHash ) ) . toEqual ( `${ base } /icons/${ id } /${ animatedHash } .gif` ) ;
88+ expect ( cdn . icon ( id , animatedHash ) ) . toEqual ( `${ baseCDN } /icons/${ id } /${ animatedHash } .gif` ) ;
8889} ) ;
8990
9091test ( 'icon dynamic-not-animated' , ( ) => {
91- expect ( cdn . icon ( id , hash ) ) . toEqual ( `${ base } /icons/${ id } /${ hash } .webp` ) ;
92+ expect ( cdn . icon ( id , hash ) ) . toEqual ( `${ baseCDN } /icons/${ id } /${ hash } .webp` ) ;
9293} ) ;
9394
9495test ( 'role icon default' , ( ) => {
95- expect ( cdn . roleIcon ( id , hash ) ) . toEqual ( `${ base } /role-icons/${ id } /${ hash } .webp` ) ;
96+ expect ( cdn . roleIcon ( id , hash ) ) . toEqual ( `${ baseCDN } /role-icons/${ id } /${ hash } .webp` ) ;
9697} ) ;
9798
9899test ( 'splash default' , ( ) => {
99- expect ( cdn . splash ( id , hash ) ) . toEqual ( `${ base } /splashes/${ id } /${ hash } .webp` ) ;
100+ expect ( cdn . splash ( id , hash ) ) . toEqual ( `${ baseCDN } /splashes/${ id } /${ hash } .webp` ) ;
100101} ) ;
101102
102103test ( 'sticker default' , ( ) => {
103- expect ( cdn . sticker ( id ) ) . toEqual ( `${ base } /stickers/${ id } .png` ) ;
104+ expect ( cdn . sticker ( id ) ) . toEqual ( `${ baseCDN } /stickers/${ id } .png` ) ;
105+ } ) ;
106+
107+ test ( 'sticker GIF' , ( ) => {
108+ expect ( cdn . sticker ( id , 'gif' ) ) . toEqual ( `${ baseMedia } /stickers/${ id } .gif` ) ;
104109} ) ;
105110
106111test ( 'stickerPackBanner default' , ( ) => {
107- expect ( cdn . stickerPackBanner ( id ) ) . toEqual ( `${ base } /app-assets/710982414301790216/store/${ id } .webp` ) ;
112+ expect ( cdn . stickerPackBanner ( id ) ) . toEqual ( `${ baseCDN } /app-assets/710982414301790216/store/${ id } .webp` ) ;
108113} ) ;
109114
110115test ( 'teamIcon default' , ( ) => {
111- expect ( cdn . teamIcon ( id , hash ) ) . toEqual ( `${ base } /team-icons/${ id } /${ hash } .webp` ) ;
116+ expect ( cdn . teamIcon ( id , hash ) ) . toEqual ( `${ baseCDN } /team-icons/${ id } /${ hash } .webp` ) ;
112117} ) ;
113118
114119test ( 'makeURL throws on invalid size' , ( ) => {
@@ -122,5 +127,5 @@ test('makeURL throws on invalid extension', () => {
122127} ) ;
123128
124129test ( 'makeURL valid size' , ( ) => {
125- expect ( cdn . avatar ( id , animatedHash , { size : 512 } ) ) . toEqual ( `${ base } /avatars/${ id } /${ animatedHash } .gif?size=512` ) ;
130+ expect ( cdn . avatar ( id , animatedHash , { size : 512 } ) ) . toEqual ( `${ baseCDN } /avatars/${ id } /${ animatedHash } .gif?size=512` ) ;
126131} ) ;
0 commit comments