79 lines
2.3 KiB
TypeScript
79 lines
2.3 KiB
TypeScript
// Copyright 2023 Signal Messenger, LLC
|
|
// SPDX-License-Identifier: AGPL-3.0-only
|
|
|
|
import { assert } from 'chai';
|
|
|
|
import * as durations from '../../util/durations';
|
|
import type { Bootstrap, App } from '../bootstrap';
|
|
import {
|
|
artAddStickersRoute,
|
|
showConversationRoute,
|
|
} from '../../util/signalRoutes';
|
|
import {
|
|
initStorage,
|
|
STICKER_PACKS,
|
|
storeStickerPacks,
|
|
} from '../storage/fixtures';
|
|
import { strictAssert } from '../../util/assert';
|
|
|
|
describe('routing', function (this: Mocha.Suite) {
|
|
this.timeout(durations.MINUTE);
|
|
|
|
let bootstrap: Bootstrap;
|
|
let app: App;
|
|
|
|
beforeEach(async () => {
|
|
({ bootstrap, app } = await initStorage());
|
|
});
|
|
|
|
afterEach(async function (this: Mocha.Context) {
|
|
await bootstrap.maybeSaveLogs(this.currentTest, app);
|
|
await app.close();
|
|
await bootstrap.teardown();
|
|
});
|
|
|
|
it('artAddStickersRoute', async () => {
|
|
const { server } = bootstrap;
|
|
const stickerPack = STICKER_PACKS[0];
|
|
await storeStickerPacks(server, [stickerPack]);
|
|
const stickerUrl = artAddStickersRoute.toWebUrl({
|
|
packId: stickerPack.id.toString('hex'),
|
|
packKey: stickerPack.key.toString('hex'),
|
|
});
|
|
await app.openSignalRoute(stickerUrl);
|
|
const page = await app.getWindow();
|
|
const title = page.locator(
|
|
'.module-sticker-manager__preview-modal__footer--title',
|
|
{ hasText: 'Test Stickerpack' }
|
|
);
|
|
await title.waitFor();
|
|
assert.isTrue(await title.isVisible());
|
|
});
|
|
|
|
it('showConversationRoute', async () => {
|
|
const { contacts } = bootstrap;
|
|
const [friend] = contacts;
|
|
const page = await app.getWindow();
|
|
await page.locator('#LeftPane').waitFor();
|
|
const conversationId = await page.evaluate(
|
|
serviceId => window.SignalCI?.getConversationId(serviceId),
|
|
friend.toContact().aci
|
|
);
|
|
strictAssert(
|
|
typeof conversationId === 'string',
|
|
'conversationId must exist'
|
|
);
|
|
const conversationUrl = showConversationRoute.toAppUrl({
|
|
conversationId,
|
|
messageId: null,
|
|
storyId: null,
|
|
});
|
|
await app.openSignalRoute(conversationUrl);
|
|
const title = page.locator(
|
|
'.module-ConversationHeader__header__info__title',
|
|
{ hasText: 'Alice Smith' }
|
|
);
|
|
await title.waitFor();
|
|
assert.isTrue(await title.isVisible());
|
|
});
|
|
});
|