mirror of
https://github.com/discordjs/discord.js.git
synced 2026-05-21 02:40:07 +00:00
Co-authored-by: Muhammad Ali <muhammadali@cloudflare.com> Co-authored-by: kodiakhq[bot] <49736102+kodiakhq[bot]@users.noreply.github.com>
48 lines
1.7 KiB
TypeScript
48 lines
1.7 KiB
TypeScript
import { afterEach, describe, expect, test, vi } from 'vitest';
|
|
import { shouldUseGlobalFetchAndWebSocket } from '../src/index.js';
|
|
|
|
describe('shouldUseGlobalFetchAndWebSocket', () => {
|
|
afterEach(() => {
|
|
vi.unstubAllGlobals();
|
|
});
|
|
|
|
test('GIVEN browser env with fetch and WebSocket THEN returns true', () => {
|
|
vi.stubGlobal('process', undefined);
|
|
vi.stubGlobal('fetch', () => void 0);
|
|
vi.stubGlobal('WebSocket', class {});
|
|
expect(shouldUseGlobalFetchAndWebSocket()).toBe(true);
|
|
});
|
|
|
|
test('GIVEN browser env without fetch or WebSocket THEN returns false', () => {
|
|
vi.stubGlobal('process', undefined);
|
|
vi.stubGlobal('fetch', globalThis.fetch);
|
|
vi.stubGlobal('WebSocket', globalThis.WebSocket);
|
|
// @ts-expect-error Testing missing globals
|
|
delete globalThis.fetch;
|
|
// @ts-expect-error Testing missing globals
|
|
delete globalThis.WebSocket;
|
|
expect(shouldUseGlobalFetchAndWebSocket()).toBe(false);
|
|
});
|
|
|
|
test('GIVEN Cloudflare Workers with nodejs_compat THEN returns true', () => {
|
|
vi.stubGlobal('process', { versions: { node: '22.19.0' } });
|
|
vi.stubGlobal('WebSocketPair', class {});
|
|
expect(shouldUseGlobalFetchAndWebSocket()).toBe(true);
|
|
});
|
|
|
|
test('GIVEN Node.js THEN returns false', () => {
|
|
vi.stubGlobal('process', { versions: { node: '22.19.0' } });
|
|
expect(shouldUseGlobalFetchAndWebSocket()).toBe(false);
|
|
});
|
|
|
|
test('GIVEN Deno THEN returns true', () => {
|
|
vi.stubGlobal('process', { versions: { deno: '1.0.0' } });
|
|
expect(shouldUseGlobalFetchAndWebSocket()).toBe(true);
|
|
});
|
|
|
|
test('GIVEN Bun THEN returns true', () => {
|
|
vi.stubGlobal('process', { versions: { bun: '1.0.0' } });
|
|
expect(shouldUseGlobalFetchAndWebSocket()).toBe(true);
|
|
});
|
|
});
|