kopia lustrzana https://github.com/FacilMap/facilmap
Import client v4 in integration tests
rodzic
3589ec3336
commit
a547401e08
|
@ -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;
|
|
@ -670,7 +670,7 @@ class Client {
|
|||
return this.state.listeningToHistory;
|
||||
}
|
||||
|
||||
get padData(): PadData | undefined {
|
||||
get padData(): (PadData & { writable: Writable }) | undefined {
|
||||
return this.data.padData;
|
||||
}
|
||||
|
||||
|
|
|
@ -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",
|
||||
|
|
|
@ -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);
|
||||
|
||||
|
|
|
@ -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 {
|
||||
|
|
31
yarn.lock
31
yarn.lock
|
@ -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
|
||||
|
||||
|
|
Ładowanie…
Reference in New Issue