XuqmGroup-RNSDK/packages/common/tests/lifecycle.test.ts

30 行
794 B
TypeScript

import assert from 'node:assert/strict'
import test from 'node:test'
import {
_notifyInitialized,
_registerInitializationHandler,
getConfig,
initConfigFromRemote,
} from '../src/config'
test('all extensions observe the same initialized config exactly once', async () => {
const observed: string[] = []
const unregister = _registerInitializationHandler('test-extension', config => {
observed.push(`${config.appKey}:${config.apiUrl}`)
})
initConfigFromRemote(
{ appKey: 'shared-app' },
{
apiUrl: 'https://api.example.test',
imApiUrl: 'https://im.example.test',
},
)
await _notifyInitialized()
assert.equal(getConfig().apiUrl, 'https://api.example.test')
assert.deepEqual(observed, ['shared-app:https://api.example.test'])
unregister()
})