Import client v4 in integration tests

v5
Candid Dauth 2024-04-15 05:23:46 +02:00
rodzic 3589ec3336
commit a547401e08
6 zmienionych plików z 128 dodań i 24 usunięć

Wyświetl plik

@ -0,0 +1,90 @@
diff --git a/dist/facilmap-client.d.ts b/dist/facilmap-client.d.ts
index 80360fe16876fe53bcad94efe2ef607c0be793ee..442708ef08dd539c393924c86f510785697130da 100644
--- a/dist/facilmap-client.d.ts
+++ b/dist/facilmap-client.d.ts
@@ -1,45 +1,45 @@
-import { Bbox } from 'facilmap-types';
-import { BboxWithZoom } from 'facilmap-types';
-import { CRU } from 'facilmap-types';
-import { EventHandler } from 'facilmap-types';
-import { EventName } from 'facilmap-types';
-import { FindOnMapQuery } from 'facilmap-types';
-import { FindPadsQuery } from 'facilmap-types';
-import { FindPadsResult } from 'facilmap-types';
-import { FindQuery } from 'facilmap-types';
-import { GetPadQuery } from 'facilmap-types';
-import { HistoryEntry } from 'facilmap-types';
-import { ID } from 'facilmap-types';
-import { Line } from 'facilmap-types';
-import { LineExportRequest } from 'facilmap-types';
-import { LineTemplate } from 'facilmap-types';
-import { LineTemplateRequest } from 'facilmap-types';
-import { LineToRouteCreate } from 'facilmap-types';
+import { Bbox } from 'facilmap-types-v4';
+import { BboxWithZoom } from 'facilmap-types-v4';
+import { CRU } from 'facilmap-types-v4';
+import { EventHandler } from 'facilmap-types-v4';
+import { EventName } from 'facilmap-types-v4';
+import { FindOnMapQuery } from 'facilmap-types-v4';
+import { FindPadsQuery } from 'facilmap-types-v4';
+import { FindPadsResult } from 'facilmap-types-v4';
+import { FindQuery } from 'facilmap-types-v4';
+import { GetPadQuery } from 'facilmap-types-v4';
+import { HistoryEntry } from 'facilmap-types-v4';
+import { ID } from 'facilmap-types-v4';
+import { Line } from 'facilmap-types-v4';
+import { LineExportRequest } from 'facilmap-types-v4';
+import { LineTemplate } from 'facilmap-types-v4';
+import { LineTemplateRequest } from 'facilmap-types-v4';
+import { LineToRouteCreate } from 'facilmap-types-v4';
import { ManagerOptions } from 'socket.io-client';
-import { Marker } from 'facilmap-types';
-import { MultipleEvents } from 'facilmap-types';
-import { ObjectWithId } from 'facilmap-types';
-import { PadData } from 'facilmap-types';
-import { PadId } from 'facilmap-types';
-import { PagedResults } from 'facilmap-types';
-import { Route } from 'facilmap-types';
-import { RouteClear } from 'facilmap-types';
-import { RouteCreate } from 'facilmap-types';
-import { RouteExportRequest } from 'facilmap-types';
-import { RouteInfo } from 'facilmap-types';
-import { RouteRequest } from 'facilmap-types';
-import { SearchResult } from 'facilmap-types';
-import { SetLanguageRequest } from 'facilmap-types';
-import { SocketEvents } from 'facilmap-types';
+import { Marker } from 'facilmap-types-v4';
+import { MultipleEvents } from 'facilmap-types-v4';
+import { ObjectWithId } from 'facilmap-types-v4';
+import { PadData } from 'facilmap-types-v4';
+import { PadId } from 'facilmap-types-v4';
+import { PagedResults } from 'facilmap-types-v4';
+import { Route } from 'facilmap-types-v4';
+import { RouteClear } from 'facilmap-types-v4';
+import { RouteCreate } from 'facilmap-types-v4';
+import { RouteExportRequest } from 'facilmap-types-v4';
+import { RouteInfo } from 'facilmap-types-v4';
+import { RouteRequest } from 'facilmap-types-v4';
+import { SearchResult } from 'facilmap-types-v4';
+import { SetLanguageRequest } from 'facilmap-types-v4';
+import { SocketEvents } from 'facilmap-types-v4';
import { SocketOptions } from 'socket.io-client';
-import { SocketRequest } from 'facilmap-types';
-import { SocketRequestName } from 'facilmap-types';
-import { SocketResponse } from 'facilmap-types';
-import { SocketVersion } from 'facilmap-types';
-import { TrackPoint } from 'facilmap-types';
-import { Type } from 'facilmap-types';
-import { View } from 'facilmap-types';
-import { Writable } from 'facilmap-types';
+import { SocketRequest } from 'facilmap-types-v4';
+import { SocketRequestName } from 'facilmap-types-v4';
+import { SocketResponse } from 'facilmap-types-v4';
+import { SocketVersion } from 'facilmap-types-v4';
+import { TrackPoint } from 'facilmap-types-v4';
+import { Type } from 'facilmap-types-v4';
+import { View } from 'facilmap-types-v4';
+import { Writable } from 'facilmap-types-v4';
declare class Client {
private socket;

Wyświetl plik

@ -670,7 +670,7 @@ class Client {
return this.state.listeningToHistory;
}
get padData(): PadData | undefined {
get padData(): (PadData & { writable: Writable }) | undefined {
return this.data.padData;
}

Wyświetl plik

@ -22,7 +22,7 @@
"dependencies": {
"facilmap-client": "workspace:^",
"facilmap-client-v3": "patch:facilmap-client@npm%3A3#../.yarn/patches/facilmap-client-npm-3.4.0-9ca14d53cc.patch",
"facilmap-client-v4": "npm:facilmap-client@4",
"facilmap-client-v4": "patch:facilmap-client@npm%3A4#../.yarn/patches/facilmap-client-npm-4.1.1-841eedca5b.patch",
"facilmap-types": "workspace:^",
"facilmap-types-v3": "npm:facilmap-types@3",
"facilmap-types-v4": "npm:facilmap-types@4",

Wyświetl plik

@ -1,6 +1,6 @@
import { expect, test, vi } from "vitest";
import { createTemporaryPad, generateTestPadId, getFacilMapUrl, getTemporaryPadData, openClient } from "../utils";
import { Writable, type PadData, CRU, type FindPadsResult, type PagedResults } from "facilmap-types";
import { Writable, type PadData, CRU, type FindPadsResult, type PagedResults, SocketVersion } from "facilmap-types";
import { pick } from "lodash-es";
import Client from "facilmap-client";
@ -249,7 +249,7 @@ test("Rename pad (duplicate IDs)", async () => {
test("Delete pad", async () => {
const client = await openClient();
const padData = getTemporaryPadData({});
const padData = getTemporaryPadData(SocketVersion.V3, {});
await createTemporaryPad(client, padData, async () => {
expect(client.deleted).toBe(false);

Wyświetl plik

@ -1,6 +1,7 @@
import { io, Socket } from "socket.io-client";
import Client from "facilmap-client";
import { type CRU, type PadData, SocketVersion, type SocketClientToServerEvents, type SocketServerToClientEvents, Writable } from "facilmap-types";
import ClientV4 from "facilmap-client-v4";
import { type CRU, type PadData, SocketVersion, type SocketClientToServerEvents, type SocketServerToClientEvents } from "facilmap-types";
import { generateRandomPadId, sleep } from "facilmap-utils";
// Workaround for https://stackoverflow.com/q/64639839/242365
@ -30,12 +31,14 @@ export async function openSocket<V extends SocketVersion>(version: V): Promise<S
const clientConstructors = {
[SocketVersion.V1]: ClientV3,
[SocketVersion.V2]: Client,
[SocketVersion.V2]: ClientV4,
[SocketVersion.V3]: Client
};
export async function openClient<V extends SocketVersion = SocketVersion.V3>(id?: string, version: V = SocketVersion.V3 as any): Promise<InstanceType<typeof clientConstructors[V]>> {
const client = new clientConstructors[version](getFacilMapUrl(), id, { reconnection: false }) as any;
type ClientInstance<V extends SocketVersion> = InstanceType<typeof clientConstructors[V]> & { _version: V };
export async function openClient<V extends SocketVersion = SocketVersion.V3>(id?: string, version: V = SocketVersion.V3 as any): Promise<ClientInstance<V>> {
const client = Object.assign(new clientConstructors[version](getFacilMapUrl(), id, { reconnection: false }) as any, { _version: version });
await new Promise<void>((resolve, reject) => {
if (id != null) {
client.on("padData", () => {
@ -54,7 +57,7 @@ export function generateTestPadId(): string {
return `integration-test-${generateRandomPadId()}`;
}
export function getTemporaryPadData<D extends Partial<PadData<CRU.CREATE>>>(data: D): D & Pick<PadData<CRU.CREATE>, "id" | "writeId" | "adminId"> {
export function getTemporaryPadData<V extends SocketVersion, D extends Partial<Parameters<ClientInstance<V>["createPad"]>[0]>>(version: V, data: D): D & Pick<Parameters<ClientInstance<V>["createPad"]>[0], "id" | "writeId" | "adminId"> {
return {
id: generateTestPadId(),
writeId: generateTestPadId(),
@ -63,13 +66,13 @@ export function getTemporaryPadData<D extends Partial<PadData<CRU.CREATE>>>(data
};
}
export async function createTemporaryPad<D extends Partial<PadData<CRU.CREATE>>, C extends InstanceType<typeof clientConstructors[keyof typeof clientConstructors]>>(
client: C,
export async function createTemporaryPad<V extends SocketVersion, D extends Partial<PadData<CRU.CREATE>>>(
client: ClientInstance<V>,
data: D,
callback?: (createPadData: ReturnType<typeof getTemporaryPadData<D>>, padData: PadData & { writable: Writable }, result: Awaited<ReturnType<C["createPad"]>>) => Promise<void>
callback?: (createPadData: ReturnType<typeof getTemporaryPadData<V, D>>, padData: NonNullable<ClientInstance<V>["padData"]>, result: Awaited<ReturnType<ClientInstance<V>["createPad"]>>) => Promise<void>
): Promise<void> {
const createPadData = getTemporaryPadData(data);
const result = await client.createPad(createPadData);
const createPadData = getTemporaryPadData(client._version, data);
const result = await client.createPad(createPadData as any);
try {
await callback?.(createPadData, client.padData!, result as any);
} finally {

Wyświetl plik

@ -3913,14 +3913,14 @@ __metadata:
languageName: node
linkType: hard
"facilmap-client-v4@npm:facilmap-client@4":
version: 4.1.0
resolution: "facilmap-client@npm:4.1.0"
"facilmap-client-v4@patch:facilmap-client@npm%3A4#../.yarn/patches/facilmap-client-npm-4.1.1-841eedca5b.patch::locator=facilmap-integration-tests%40workspace%3Aintegration-tests":
version: 4.1.1
resolution: "facilmap-client-v4@patch:facilmap-client@npm%3A4.1.1#../.yarn/patches/facilmap-client-npm-4.1.1-841eedca5b.patch::version=4.1.1&hash=4ef405&locator=facilmap-integration-tests%40workspace%3Aintegration-tests"
dependencies:
facilmap-types: ^4.1.0
facilmap-types: ^4.1.1
serialize-error: ^11.0.3
socket.io-client: ^4.7.5
checksum: dded594b13c9f4ada8619bb15182984b8a9bb1b08cdc2a29027a775a7835fdfdf33db50fe4465cc9ba8e00d86a09227b1508a270045871869556ffc20b8c6e41
checksum: 4d88abb6a0a5c4cc7e084918a28261e493b9cae5cac76f8c781e78ab16a0335b3687f5f493a28a16625b0519606bc87d54c921c051ce0c2fdc0b5caba51593a8
languageName: node
linkType: hard
@ -3934,6 +3934,17 @@ __metadata:
languageName: node
linkType: hard
"facilmap-client@npm:4":
version: 4.1.1
resolution: "facilmap-client@npm:4.1.1"
dependencies:
facilmap-types: ^4.1.1
serialize-error: ^11.0.3
socket.io-client: ^4.7.5
checksum: b07d372100fd7d05bac4a6ad5dd772b42badab6c99e75f7ee51510f26d4d82bc7b367c88e5c00cb8a666ccfb7b48c05ca4b57ce3e91bc69f0270f47c7f5bc905
languageName: node
linkType: hard
"facilmap-client@workspace:^, facilmap-client@workspace:client":
version: 0.0.0-use.local
resolution: "facilmap-client@workspace:client"
@ -4021,7 +4032,7 @@ __metadata:
"@types/lodash-es": ^4.17.12
facilmap-client: "workspace:^"
facilmap-client-v3: "patch:facilmap-client@npm%3A3#../.yarn/patches/facilmap-client-npm-3.4.0-9ca14d53cc.patch"
facilmap-client-v4: "npm:facilmap-client@4"
facilmap-client-v4: "patch:facilmap-client@npm%3A4#../.yarn/patches/facilmap-client-npm-4.1.1-841eedca5b.patch"
facilmap-types: "workspace:^"
facilmap-types-v3: "npm:facilmap-types@3"
facilmap-types-v4: "npm:facilmap-types@4"
@ -4161,13 +4172,13 @@ __metadata:
languageName: node
linkType: hard
"facilmap-types-v4@npm:facilmap-types@4, facilmap-types@npm:^4.1.0":
version: 4.1.0
resolution: "facilmap-types@npm:4.1.0"
"facilmap-types-v4@npm:facilmap-types@4, facilmap-types@npm:^4.1.1":
version: 4.1.1
resolution: "facilmap-types@npm:4.1.1"
dependencies:
"@types/geojson": ^7946.0.14
zod: ^3.22.4
checksum: 7d5afea1b80ba99994d9c648fe33c908bf816a9f96be9ae2d011d4691dd4842ecc1df30f6e6a74eb99d5836df7e49112189294ff7cc42d79ab90897ba35b683f
checksum: 70775a479dc0b0ccedf69b5f9fc7306b6d0fe7d50d836889b4ece1b409089620413ddc05c1996889901f9c3ae4e15235b3fc67280424383784fbc49dba4509dc
languageName: node
linkType: hard