diff --git a/src/modules/actions/api/initial.ts b/src/modules/actions/api/initial.ts index 8ea11d6f9..cb06bf58c 100644 --- a/src/modules/actions/api/initial.ts +++ b/src/modules/actions/api/initial.ts @@ -10,6 +10,7 @@ import { MEDIA_CACHE_NAME, MEDIA_CACHE_NAME_AVATARS, MEDIA_PROGRESSIVE_CACHE_NAME, + IS_TEST, } from '../../../config'; import { initApi, callApi } from '../../../api/gramjs'; import { unsubscribe } from '../../../util/notifications'; @@ -22,12 +23,17 @@ import { clearStoredSession, importLegacySession, clearLegacySessions, + importTestSession, } from './sessions'; addReducer('initApi', (global: GlobalState, actions) => { (async () => { - await importLegacySession(); - void clearLegacySessions(); + if (!IS_TEST) { + await importLegacySession(); + void clearLegacySessions(); + } else { + importTestSession(); + } void initApi(actions.apiUpdate, loadStoredSession()); })(); diff --git a/src/modules/actions/api/sessions.ts b/src/modules/actions/api/sessions.ts index 06a1b3fb9..4d13605db 100644 --- a/src/modules/actions/api/sessions.ts +++ b/src/modules/actions/api/sessions.ts @@ -98,3 +98,17 @@ export async function clearLegacySessions() { .map((k) => idb.del(k)), ]); } + +export function importTestSession() { + const sessionJson = process.env.TEST_SESSION!; + try { + const sessionData = JSON.parse(sessionJson) as ApiSessionData; + storeSession(sessionData); + } catch (err) { + if (DEBUG) { + // eslint-disable-next-line no-console + console.warn('Failed to load test session', err); + } + // Do nothing. + } +} diff --git a/src/util/environment.ts b/src/util/environment.ts index eb9bcb440..6c724f0be 100644 --- a/src/util/environment.ts +++ b/src/util/environment.ts @@ -2,6 +2,7 @@ import { MOBILE_SCREEN_MAX_WIDTH, MOBILE_SCREEN_LANDSCAPE_MAX_HEIGHT, MOBILE_SCREEN_LANDSCAPE_MAX_WIDTH, + IS_TEST, } from '../config'; export function getPlatform() { @@ -47,7 +48,9 @@ export const IS_SERVICE_WORKER_SUPPORTED = 'serviceWorker' in navigator; export const IS_PROGRESSIVE_SUPPORTED = IS_SERVICE_WORKER_SUPPORTED; export const IS_STREAMING_SUPPORTED = 'MediaSource' in window; export const IS_OPUS_SUPPORTED = Boolean((new Audio()).canPlayType('audio/ogg; codecs=opus')); -export const IS_CANVAS_FILTER_SUPPORTED = 'filter' in (document.createElement('canvas').getContext('2d') || {}); +export const IS_CANVAS_FILTER_SUPPORTED = ( + !IS_TEST && 'filter' in (document.createElement('canvas').getContext('2d') || {}) +); export const DPR = window.devicePixelRatio || 1;