fix(install): LIVEKIT_URL попадает в compose приложения

Шаблон compose подставляет переменные из явного списка: LIVEKIT_PUBLIC_URL не
был в нём, поэтому приложение получало пустой адрес LiveKit и голос оставался
выключенным. Добавлены LIVEKIT_API_KEY/SECRET/PUBLIC_URL в рендер compose.
This commit is contained in:
2026-09-20 18:19:19 +03:00
parent ca34d05377
commit 2749a0e831
13 changed files with 73 additions and 60 deletions
+22 -4
View File
@@ -68,7 +68,8 @@ function routes(options: RoutesOptions = {}) {
{
match: '/api/v1/guilds/g-1/emojis',
method: 'POST',
response: options.uploadResponse ?? (() => json({ emoji: { ...pepe, id: 'e-3', name: 'kek' } })),
response:
options.uploadResponse ?? (() => json({ emoji: { ...pepe, id: 'e-3', name: 'kek' } })),
},
{
match: '/api/v1/users/@me/guilds',
@@ -169,6 +170,25 @@ describe('настройки сервера: секция «Эмодзи»', ()
});
});
it('принимает файл перетаскиванием в область загрузки', async () => {
const visitor = userEvent.setup();
const fetchMock = installFetch(routes());
const { dialog } = await openEmojisSection();
fireEvent.drop(within(dialog).getByTestId('emoji-dropzone'), {
dataTransfer: { files: [emojiFile('drop.png', 'image/png')] },
});
// Имя файла видно в области загрузки — файл принят.
expect(await within(dialog).findByText(/drop\.png/)).toBeVisible();
await visitor.type(within(dialog).getByLabelText('Имя эмодзи'), 'drop');
await visitor.click(within(dialog).getByRole('button', { name: 'Загрузить' }));
await waitFor(() => {
expect(uploadForm(fetchMock)?.get('name')).toBe('drop');
});
});
it('не отправляет файл неподдерживаемого формата', async () => {
const fetchMock = installFetch(routes());
@@ -213,9 +233,7 @@ describe('настройки сервера: секция «Эмодзи»', ()
);
await visitor.click(within(dialog).getByRole('button', { name: 'Загрузить' }));
expect(await within(dialog).findByRole('alert')).toHaveTextContent(
'Имя эмодзи: 2–32 символа',
);
expect(await within(dialog).findByRole('alert')).toHaveTextContent('Имя эмодзи: 2–32 символа');
expect(uploadForm(fetchMock)).toBeUndefined();
});