fix tests
This commit is contained in:
@@ -7,9 +7,9 @@ Please see LICENSE in the repository root for full details.
|
|||||||
|
|
||||||
import { describe, expect, it, vi } from "vitest";
|
import { describe, expect, it, vi } from "vitest";
|
||||||
import { render, waitFor } from "@testing-library/react";
|
import { render, waitFor } from "@testing-library/react";
|
||||||
|
import { type Room as LivekitRoom } from "livekit-client";
|
||||||
|
|
||||||
import type { MatrixClient } from "matrix-js-sdk";
|
import type { MatrixClient } from "matrix-js-sdk";
|
||||||
import type { Room as LivekitRoom } from "livekit-client";
|
|
||||||
import { DeveloperSettingsTab } from "./DeveloperSettingsTab";
|
import { DeveloperSettingsTab } from "./DeveloperSettingsTab";
|
||||||
|
|
||||||
// Mock url params hook to avoid environment-dependent snapshot churn.
|
// Mock url params hook to avoid environment-dependent snapshot churn.
|
||||||
@@ -30,6 +30,8 @@ function createMockLivekitRoom(
|
|||||||
serverInfo,
|
serverInfo,
|
||||||
metadata,
|
metadata,
|
||||||
engine: { client: { ws: { url: wsUrl } } },
|
engine: { client: { ws: { url: wsUrl } } },
|
||||||
|
localParticipant: { identity: "localParticipantIdentity" },
|
||||||
|
remoteParticipants: new Map(),
|
||||||
} as unknown as LivekitRoom;
|
} as unknown as LivekitRoom;
|
||||||
|
|
||||||
return {
|
return {
|
||||||
@@ -69,6 +71,8 @@ describe("DeveloperSettingsTab", () => {
|
|||||||
isLocal: false,
|
isLocal: false,
|
||||||
url: "wss://remote-sfu.example.org",
|
url: "wss://remote-sfu.example.org",
|
||||||
room: {
|
room: {
|
||||||
|
localParticipant: { identity: "localParticipantIdentity" },
|
||||||
|
remoteParticipants: new Map(),
|
||||||
serverInfo: { region: "remote", version: "4.5.6" },
|
serverInfo: { region: "remote", version: "4.5.6" },
|
||||||
metadata: "remote-metadata",
|
metadata: "remote-metadata",
|
||||||
engine: { client: { ws: { url: "wss://remote-sfu.example.org" } } },
|
engine: { client: { ws: { url: "wss://remote-sfu.example.org" } } },
|
||||||
|
|||||||
@@ -349,46 +349,78 @@ exports[`DeveloperSettingsTab > renders and matches snapshot 1`] = `
|
|||||||
</div>
|
</div>
|
||||||
</div>
|
</div>
|
||||||
</form>
|
</form>
|
||||||
<h3>
|
<div
|
||||||
LiveKit SFU: wss://local-sfu.example.org
|
class="livekit_room_box"
|
||||||
</h3>
|
|
||||||
<p>
|
|
||||||
ws-url:
|
|
||||||
wss://local-sfu.example.org/
|
|
||||||
</p>
|
|
||||||
<p>
|
|
||||||
LiveKit Server Info
|
|
||||||
(
|
|
||||||
local
|
|
||||||
)
|
|
||||||
</p>
|
|
||||||
<pre
|
|
||||||
class="pre"
|
|
||||||
>
|
>
|
||||||
{
|
<h4>
|
||||||
|
LiveKit SFU: wss://local-sfu.example.org
|
||||||
|
</h4>
|
||||||
|
<p>
|
||||||
|
ws-url:
|
||||||
|
wss://local-sfu.example.org/
|
||||||
|
</p>
|
||||||
|
<p>
|
||||||
|
LiveKit Server Info
|
||||||
|
(
|
||||||
|
local
|
||||||
|
)
|
||||||
|
</p>
|
||||||
|
<pre
|
||||||
|
class="pre"
|
||||||
|
>
|
||||||
|
{
|
||||||
"region": "local",
|
"region": "local",
|
||||||
"version": "1.2.3"
|
"version": "1.2.3"
|
||||||
}
|
}
|
||||||
local-metadata
|
local-metadata
|
||||||
</pre>
|
</pre>
|
||||||
<h3>
|
<p>
|
||||||
LiveKit SFU: wss://remote-sfu.example.org
|
Local Participant
|
||||||
</h3>
|
</p>
|
||||||
<p>
|
<pre
|
||||||
LiveKit Server Info
|
class="pre"
|
||||||
(
|
>
|
||||||
remote
|
localParticipantIdentity
|
||||||
)
|
</pre>
|
||||||
</p>
|
<p>
|
||||||
<pre
|
Remote Participants
|
||||||
class="pre"
|
</p>
|
||||||
|
<ul />
|
||||||
|
</div>
|
||||||
|
<div
|
||||||
|
class="livekit_room_box"
|
||||||
>
|
>
|
||||||
{
|
<h4>
|
||||||
|
LiveKit SFU: wss://remote-sfu.example.org
|
||||||
|
</h4>
|
||||||
|
<p>
|
||||||
|
LiveKit Server Info
|
||||||
|
(
|
||||||
|
remote
|
||||||
|
)
|
||||||
|
</p>
|
||||||
|
<pre
|
||||||
|
class="pre"
|
||||||
|
>
|
||||||
|
{
|
||||||
"region": "remote",
|
"region": "remote",
|
||||||
"version": "4.5.6"
|
"version": "4.5.6"
|
||||||
}
|
}
|
||||||
remote-metadata
|
remote-metadata
|
||||||
</pre>
|
</pre>
|
||||||
|
<p>
|
||||||
|
Local Participant
|
||||||
|
</p>
|
||||||
|
<pre
|
||||||
|
class="pre"
|
||||||
|
>
|
||||||
|
localParticipantIdentity
|
||||||
|
</pre>
|
||||||
|
<p>
|
||||||
|
Remote Participants
|
||||||
|
</p>
|
||||||
|
<ul />
|
||||||
|
</div>
|
||||||
<p>
|
<p>
|
||||||
Environment variables
|
Environment variables
|
||||||
</p>
|
</p>
|
||||||
|
|||||||
@@ -271,7 +271,7 @@ describe("LocalMembership", () => {
|
|||||||
} as unknown as LocalParticipant,
|
} as unknown as LocalParticipant,
|
||||||
}),
|
}),
|
||||||
state$: constant(ConnectionState.LivekitConnected),
|
state$: constant(ConnectionState.LivekitConnected),
|
||||||
transport: aTransport,
|
transport: aTransport.transport,
|
||||||
} as unknown as Connection;
|
} as unknown as Connection;
|
||||||
const connectionTransportAConnecting = {
|
const connectionTransportAConnecting = {
|
||||||
...connectionTransportAConnected,
|
...connectionTransportAConnected,
|
||||||
@@ -280,11 +280,11 @@ describe("LocalMembership", () => {
|
|||||||
} as unknown as Connection;
|
} as unknown as Connection;
|
||||||
const connectionTransportBConnected = {
|
const connectionTransportBConnected = {
|
||||||
state$: constant(ConnectionState.LivekitConnected),
|
state$: constant(ConnectionState.LivekitConnected),
|
||||||
transport: bTransport,
|
transport: bTransport.transport,
|
||||||
livekitRoom: mockLivekitRoom({}),
|
livekitRoom: mockLivekitRoom({}),
|
||||||
} as unknown as Connection;
|
} as unknown as Connection;
|
||||||
|
|
||||||
it("recreates publisher if new connection is used and ENDS always unpublish and end tracks", async () => {
|
it("recreates publisher if new connection is used, always unpublish and end tracks", async () => {
|
||||||
const scope = new ObservableScope();
|
const scope = new ObservableScope();
|
||||||
|
|
||||||
const localTransport$ = new BehaviorSubject(aTransport);
|
const localTransport$ = new BehaviorSubject(aTransport);
|
||||||
@@ -332,8 +332,12 @@ describe("LocalMembership", () => {
|
|||||||
expect(publishers[1].stopTracks).not.toHaveBeenCalled();
|
expect(publishers[1].stopTracks).not.toHaveBeenCalled();
|
||||||
expect(publishers[0].stopPublishing).toHaveBeenCalled();
|
expect(publishers[0].stopPublishing).toHaveBeenCalled();
|
||||||
expect(publishers[1].stopPublishing).not.toHaveBeenCalled();
|
expect(publishers[1].stopPublishing).not.toHaveBeenCalled();
|
||||||
expect(publisherFactory.mock.calls[0][0].transport).toBe(aTransport);
|
expect(publisherFactory.mock.calls[0][0].transport).toBe(
|
||||||
expect(publisherFactory.mock.calls[1][0].transport).toBe(bTransport);
|
aTransport.transport,
|
||||||
|
);
|
||||||
|
expect(publisherFactory.mock.calls[1][0].transport).toBe(
|
||||||
|
bTransport.transport,
|
||||||
|
);
|
||||||
scope.end();
|
scope.end();
|
||||||
await flushPromises();
|
await flushPromises();
|
||||||
// stop all tracks after ending scopes
|
// stop all tracks after ending scopes
|
||||||
|
|||||||
@@ -154,9 +154,17 @@ describe("LocalTransport", () => {
|
|||||||
await flushPromises();
|
await flushPromises();
|
||||||
// final
|
// final
|
||||||
expect(localTransport$.value).toStrictEqual({
|
expect(localTransport$.value).toStrictEqual({
|
||||||
livekit_alias: "!room:example.org",
|
transport: {
|
||||||
livekit_service_url: "https://lk.example.org",
|
livekit_alias: "!room:example.org",
|
||||||
type: "livekit",
|
livekit_service_url: "https://lk.example.org",
|
||||||
|
type: "livekit",
|
||||||
|
},
|
||||||
|
sfuConfig: {
|
||||||
|
jwt: "jwt",
|
||||||
|
livekitAlias: "!room:example.org",
|
||||||
|
livekitIdentity: "@alice:example.org:DEVICE",
|
||||||
|
url: "https://lk.example.org",
|
||||||
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -195,9 +203,17 @@ describe("LocalTransport", () => {
|
|||||||
await flushPromises();
|
await flushPromises();
|
||||||
// final
|
// final
|
||||||
expect(localTransport$.value).toStrictEqual({
|
expect(localTransport$.value).toStrictEqual({
|
||||||
livekit_alias: "!example_room_id",
|
transport: {
|
||||||
livekit_service_url: "https://lk.example.org",
|
livekit_alias: "!example_room_id",
|
||||||
type: "livekit",
|
livekit_service_url: "https://lk.example.org",
|
||||||
|
type: "livekit",
|
||||||
|
},
|
||||||
|
sfuConfig: {
|
||||||
|
jwt: "e30=.eyJzdWIiOiJAbWU6ZXhhbXBsZS5vcmc6QUJDREVGIiwidmlkZW8iOnsicm9vbSI6IiFleGFtcGxlX3Jvb21faWQifX0=.e30=",
|
||||||
|
livekitAlias: "!example_room_id",
|
||||||
|
livekitIdentity: "@lk_user:ABCDEF",
|
||||||
|
url: "https://lk.example.org",
|
||||||
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
|
|
||||||
@@ -247,9 +263,17 @@ describe("LocalTransport", () => {
|
|||||||
expect(localTransport$.value).toBe(null);
|
expect(localTransport$.value).toBe(null);
|
||||||
await flushPromises();
|
await flushPromises();
|
||||||
expect(localTransport$.value).toStrictEqual({
|
expect(localTransport$.value).toStrictEqual({
|
||||||
livekit_alias: "!example_room_id",
|
transport: {
|
||||||
livekit_service_url: "https://lk.example.org",
|
livekit_alias: "!example_room_id",
|
||||||
type: "livekit",
|
livekit_service_url: "https://lk.example.org",
|
||||||
|
type: "livekit",
|
||||||
|
},
|
||||||
|
sfuConfig: {
|
||||||
|
jwt: "e30=.eyJzdWIiOiJAbWU6ZXhhbXBsZS5vcmc6QUJDREVGIiwidmlkZW8iOnsicm9vbSI6IiFleGFtcGxlX3Jvb21faWQifX0=.e30=",
|
||||||
|
livekitAlias: "!example_room_id",
|
||||||
|
livekitIdentity: "@lk_user:ABCDEF",
|
||||||
|
url: "https://lk.example.org",
|
||||||
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it("supports getting transport via user settings", async () => {
|
it("supports getting transport via user settings", async () => {
|
||||||
@@ -259,9 +283,17 @@ describe("LocalTransport", () => {
|
|||||||
expect(localTransport$.value).toBe(null);
|
expect(localTransport$.value).toBe(null);
|
||||||
await flushPromises();
|
await flushPromises();
|
||||||
expect(localTransport$.value).toStrictEqual({
|
expect(localTransport$.value).toStrictEqual({
|
||||||
livekit_alias: "!example_room_id",
|
transport: {
|
||||||
livekit_service_url: "https://lk.example.org",
|
livekit_alias: "!example_room_id",
|
||||||
type: "livekit",
|
livekit_service_url: "https://lk.example.org",
|
||||||
|
type: "livekit",
|
||||||
|
},
|
||||||
|
sfuConfig: {
|
||||||
|
jwt: "e30=.eyJzdWIiOiJAbWU6ZXhhbXBsZS5vcmc6QUJDREVGIiwidmlkZW8iOnsicm9vbSI6IiFleGFtcGxlX3Jvb21faWQifX0=.e30=",
|
||||||
|
livekitAlias: "!example_room_id",
|
||||||
|
livekitIdentity: "@lk_user:ABCDEF",
|
||||||
|
url: "https://lk.example.org",
|
||||||
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it("supports getting transport via backend", async () => {
|
it("supports getting transport via backend", async () => {
|
||||||
@@ -273,9 +305,17 @@ describe("LocalTransport", () => {
|
|||||||
expect(localTransport$.value).toBe(null);
|
expect(localTransport$.value).toBe(null);
|
||||||
await flushPromises();
|
await flushPromises();
|
||||||
expect(localTransport$.value).toStrictEqual({
|
expect(localTransport$.value).toStrictEqual({
|
||||||
livekit_alias: "!example_room_id",
|
transport: {
|
||||||
livekit_service_url: "https://lk.example.org",
|
livekit_alias: "!example_room_id",
|
||||||
type: "livekit",
|
livekit_service_url: "https://lk.example.org",
|
||||||
|
type: "livekit",
|
||||||
|
},
|
||||||
|
sfuConfig: {
|
||||||
|
jwt: "e30=.eyJzdWIiOiJAbWU6ZXhhbXBsZS5vcmc6QUJDREVGIiwidmlkZW8iOnsicm9vbSI6IiFleGFtcGxlX3Jvb21faWQifX0=.e30=",
|
||||||
|
livekitAlias: "!example_room_id",
|
||||||
|
livekitIdentity: "@lk_user:ABCDEF",
|
||||||
|
url: "https://lk.example.org",
|
||||||
|
},
|
||||||
});
|
});
|
||||||
});
|
});
|
||||||
it("fails fast if the openID request fails for backend config", async () => {
|
it("fails fast if the openID request fails for backend config", async () => {
|
||||||
@@ -304,9 +344,17 @@ describe("LocalTransport", () => {
|
|||||||
expect(localTransport$.value).toBe(null);
|
expect(localTransport$.value).toBe(null);
|
||||||
await flushPromises();
|
await flushPromises();
|
||||||
expect(localTransport$.value).toStrictEqual({
|
expect(localTransport$.value).toStrictEqual({
|
||||||
livekit_alias: "!example_room_id",
|
transport: {
|
||||||
livekit_service_url: "https://lk.example.org",
|
livekit_alias: "!example_room_id",
|
||||||
type: "livekit",
|
livekit_service_url: "https://lk.example.org",
|
||||||
|
type: "livekit",
|
||||||
|
},
|
||||||
|
sfuConfig: {
|
||||||
|
jwt: "e30=.eyJzdWIiOiJAbWU6ZXhhbXBsZS5vcmc6QUJDREVGIiwidmlkZW8iOnsicm9vbSI6IiFleGFtcGxlX3Jvb21faWQifX0=.e30=",
|
||||||
|
livekitAlias: "!example_room_id",
|
||||||
|
livekitIdentity: "@lk_user:ABCDEF",
|
||||||
|
url: "https://lk.example.org",
|
||||||
|
},
|
||||||
});
|
});
|
||||||
expect(fetchMock.done()).toEqual(true);
|
expect(fetchMock.done()).toEqual(true);
|
||||||
});
|
});
|
||||||
|
|||||||
@@ -49,7 +49,7 @@ beforeEach(() => {
|
|||||||
vi.mocked(fakeConnectionFactory).createConnection = vi
|
vi.mocked(fakeConnectionFactory).createConnection = vi
|
||||||
.fn()
|
.fn()
|
||||||
.mockImplementation(
|
.mockImplementation(
|
||||||
(transport: LivekitTransport, scope: ObservableScope) => {
|
(scope: ObservableScope, transport: LivekitTransport) => {
|
||||||
const mockConnection = {
|
const mockConnection = {
|
||||||
transport,
|
transport,
|
||||||
remoteParticipants$: new BehaviorSubject([]),
|
remoteParticipants$: new BehaviorSubject([]),
|
||||||
@@ -229,7 +229,7 @@ describe("connectionManagerData$ stream", () => {
|
|||||||
vi.mocked(fakeConnectionFactory).createConnection = vi
|
vi.mocked(fakeConnectionFactory).createConnection = vi
|
||||||
.fn()
|
.fn()
|
||||||
.mockImplementation(
|
.mockImplementation(
|
||||||
(transport: LivekitTransport, scope: ObservableScope) => {
|
(scope: ObservableScope, transport: LivekitTransport) => {
|
||||||
const fakeRemoteParticipants$ = new BehaviorSubject<
|
const fakeRemoteParticipants$ = new BehaviorSubject<
|
||||||
RemoteParticipant[]
|
RemoteParticipant[]
|
||||||
>([]);
|
>([]);
|
||||||
|
|||||||
Reference in New Issue
Block a user