vease 1.57.0-rc.2 → 1.57.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/.build/tests/e2e/utils/data/helpers/textures.js +25 -0
- package/.build/tests/e2e/utils/data/mesh/polygon/textures.js +9 -3
- package/.build/tests/e2e/utils/extension.js +1 -1
- package/.build/tests/e2e/utils/fixtures.js +1 -1
- package/.build/tests/e2e/utils/load.js +1 -1
- package/.build/tests/e2e/utils/navigate.js +1 -1
- package/.build/tests/e2e/utils/viewer_interaction.js +1 -16
- package/package.json +7 -7
- package/tests/e2e/utils/data/helpers/textures.ts +41 -0
- package/tests/e2e/utils/data/mesh/polygon/textures.ts +15 -3
- package/tests/e2e/utils/viewer_interaction.ts +0 -27
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
import { waitForActionSettled } from "../../wait_for_action_settled.js";
|
|
2
|
+
import { ensureFeatureVisible, ensureMenuOpen } from "../../viewer_interaction.js";
|
|
3
|
+
//#region tests/e2e/utils/data/helpers/textures.ts
|
|
4
|
+
async function selectOverlayListItem(window, text) {
|
|
5
|
+
await window.locator(".v-overlay-container").locator(".v-list-item").filter({
|
|
6
|
+
hasText: text,
|
|
7
|
+
visible: true
|
|
8
|
+
}).first().click();
|
|
9
|
+
await waitForActionSettled(window);
|
|
10
|
+
}
|
|
11
|
+
async function setFeatureTextures(window, menuTestId, texture) {
|
|
12
|
+
await ensureMenuOpen(window, menuTestId);
|
|
13
|
+
await ensureFeatureVisible(window, menuTestId);
|
|
14
|
+
const container = window.getByTestId(menuTestId);
|
|
15
|
+
await container.getByTestId("coloringStyleSelector").first().click();
|
|
16
|
+
await waitForActionSettled(window);
|
|
17
|
+
await selectOverlayListItem(window, "Textures");
|
|
18
|
+
await container.getByTestId("textureNameSelector").first().click();
|
|
19
|
+
await waitForActionSettled(window);
|
|
20
|
+
await selectOverlayListItem(window, texture.name);
|
|
21
|
+
await container.locator("input[type=\"file\"][accept*=\"image/png\"]").first().setInputFiles(texture.filePath);
|
|
22
|
+
await waitForActionSettled(window);
|
|
23
|
+
}
|
|
24
|
+
//#endregion
|
|
25
|
+
export { setFeatureTextures };
|
|
@@ -1,8 +1,14 @@
|
|
|
1
|
-
import { meshViewerObjectType } from "../../../constants.js";
|
|
2
|
-
import {
|
|
1
|
+
import { meshViewerObjectType, polygonsFeatureName } from "../../../constants.js";
|
|
2
|
+
import { setFeatureTextures } from "../../helpers/textures.js";
|
|
3
|
+
import path from "node:path";
|
|
3
4
|
//#region tests/e2e/utils/data/mesh/polygon/textures.ts
|
|
5
|
+
const __dirname = import.meta.dirname;
|
|
6
|
+
const texture = {
|
|
7
|
+
name: "test_texture",
|
|
8
|
+
filePath: path.join(__dirname, "..", "..", "..", "..", "tests", "data", "test_texture.png")
|
|
9
|
+
};
|
|
4
10
|
async function setMeshPolygonsTextures(window) {
|
|
5
|
-
await
|
|
11
|
+
await setFeatureTextures(window, `${meshViewerObjectType}${polygonsFeatureName}Menu`, texture);
|
|
6
12
|
}
|
|
7
13
|
//#endregion
|
|
8
14
|
export { setMeshPolygonsTextures };
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { modalTransitionWait } from "./constants.js";
|
|
2
2
|
import { waitForLoadingScreen } from "./other.js";
|
|
3
3
|
import { navigateToExtensionsPage } from "./navigate.js";
|
|
4
|
-
import { consola } from "consola";
|
|
5
4
|
import path from "node:path";
|
|
5
|
+
import { consola } from "consola";
|
|
6
6
|
//#region tests/e2e/utils/extension.ts
|
|
7
7
|
async function loadExtension(window, extensionFilePath) {
|
|
8
8
|
await waitForLoadingScreen(window);
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { waitForActionSettled } from "./wait_for_action_settled.js";
|
|
2
2
|
import { navigateToApp } from "./navigate.js";
|
|
3
3
|
import { expect, test as test$1 } from "@playwright/test";
|
|
4
|
-
import { consola } from "consola";
|
|
5
4
|
import path from "node:path";
|
|
5
|
+
import { consola } from "consola";
|
|
6
6
|
import fs from "node:fs";
|
|
7
7
|
import os from "node:os";
|
|
8
8
|
//#region tests/e2e/utils/fixtures.ts
|
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
import { waitForActionSettled } from "./wait_for_action_settled.js";
|
|
2
2
|
import { expect } from "@playwright/test";
|
|
3
|
-
import { consola } from "consola";
|
|
4
3
|
import path from "node:path";
|
|
4
|
+
import { consola } from "consola";
|
|
5
5
|
//#region tests/e2e/utils/load.ts
|
|
6
6
|
const __dirname = import.meta.dirname;
|
|
7
7
|
const loadWorkflowTimeout = 8e3;
|
|
@@ -1,8 +1,8 @@
|
|
|
1
1
|
import { logBrowserConsole } from "../../../utils/browser_console.js";
|
|
2
2
|
import { expect } from "@playwright/test";
|
|
3
3
|
import { isWindows } from "std-env";
|
|
4
|
-
import { consola } from "consola";
|
|
5
4
|
import path from "node:path";
|
|
5
|
+
import { consola } from "consola";
|
|
6
6
|
import { execSync } from "node:child_process";
|
|
7
7
|
import fs from "node:fs";
|
|
8
8
|
import { setTimeout } from "node:timers/promises";
|
|
@@ -138,21 +138,6 @@ async function dragContextMenu(window, { targetX, targetY } = {}) {
|
|
|
138
138
|
targetY
|
|
139
139
|
});
|
|
140
140
|
}
|
|
141
|
-
async function setFeatureTextures(window, viewerObjectType, feature) {
|
|
142
|
-
const menuTestId = `${viewerObjectType}${feature}Menu`;
|
|
143
|
-
await ensureMenuOpen(window, menuTestId);
|
|
144
|
-
await ensureFeatureVisible(window, menuTestId);
|
|
145
|
-
await window.getByTestId(menuTestId).getByTestId("coloringStyleSelector").first().click();
|
|
146
|
-
await waitForActionSettled(window);
|
|
147
|
-
await window.locator(".v-overlay-container").locator(".v-list-item").filter({
|
|
148
|
-
hasText: "Textures",
|
|
149
|
-
visible: true
|
|
150
|
-
}).first().click();
|
|
151
|
-
await waitForActionSettled(window);
|
|
152
|
-
}
|
|
153
|
-
async function setPolygonsTextures(window, viewerObjectType) {
|
|
154
|
-
await setFeatureTextures(window, viewerObjectType, "Polygons");
|
|
155
|
-
}
|
|
156
141
|
async function hoverViewer(window, position) {
|
|
157
142
|
const hybridViewerCanvas = getHybridViewerCanvas(window);
|
|
158
143
|
const box = await hybridViewerCanvas.boundingBox();
|
|
@@ -258,4 +243,4 @@ async function viewerQuickColormap(window, x, y) {
|
|
|
258
243
|
await waitForActionSettled(window);
|
|
259
244
|
}
|
|
260
245
|
//#endregion
|
|
261
|
-
export { afterActionWait, closeFeedbackSnackbar, dragContextMenu, dragElement, ensureFeatureVisible, ensureMenuOpen, findOverlappingObjectsPicker, getHybridViewerCanvas, getHybridViewerCanvasBoundingBox, getQuickColormapPicker, hoverViewer, moveMouseOutOfTheWay, noopCleanup, openStyleMenu, resetMenuScroll, setCellsVisibility, setEdgesVisibility, setEdgesWidth, setPointsSize, setPointsVisibility,
|
|
246
|
+
export { afterActionWait, closeFeedbackSnackbar, dragContextMenu, dragElement, ensureFeatureVisible, ensureMenuOpen, findOverlappingObjectsPicker, getHybridViewerCanvas, getHybridViewerCanvasBoundingBox, getQuickColormapPicker, hoverViewer, moveMouseOutOfTheWay, noopCleanup, openStyleMenu, resetMenuScroll, setCellsVisibility, setEdgesVisibility, setEdgesWidth, setPointsSize, setPointsVisibility, setPolygonsVisibility, setPolyhedraVisibility, setVisibilityGeneric, stabilizeHoverTooltip, toggleInfoCard, viewerContextMenu, viewerQuickColormap };
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "vease",
|
|
3
|
-
"version": "1.57.0
|
|
3
|
+
"version": "1.57.0",
|
|
4
4
|
"description": "Desktop and cloud software for data visualization",
|
|
5
5
|
"keywords": [
|
|
6
6
|
"Desktop",
|
|
@@ -90,12 +90,12 @@
|
|
|
90
90
|
"@ai-sdk/vue": "4.0.93",
|
|
91
91
|
"@fontsource/michroma": "5.2.6",
|
|
92
92
|
"@fontsource/roboto": "5.2.10",
|
|
93
|
-
"@geode/cloud-api": "
|
|
94
|
-
"@geode/opengeodeweb-back": "
|
|
95
|
-
"@geode/opengeodeweb-front": "
|
|
96
|
-
"@geode/opengeodeweb-viewer": "
|
|
97
|
-
"@geode/vease-back": "
|
|
98
|
-
"@geode/vease-viewer": "
|
|
93
|
+
"@geode/cloud-api": "latest",
|
|
94
|
+
"@geode/opengeodeweb-back": "latest",
|
|
95
|
+
"@geode/opengeodeweb-front": "latest",
|
|
96
|
+
"@geode/opengeodeweb-viewer": "latest",
|
|
97
|
+
"@geode/vease-back": "latest",
|
|
98
|
+
"@geode/vease-viewer": "latest",
|
|
99
99
|
"@nuxtjs/mcp-toolkit": "0.18.1",
|
|
100
100
|
"ai": "7.0.93",
|
|
101
101
|
"bowser": "2.14.1",
|
|
@@ -0,0 +1,41 @@
|
|
|
1
|
+
import { ensureFeatureVisible, ensureMenuOpen } from "@vease_tests/utils/viewer_interaction";
|
|
2
|
+
import type { Page } from "@playwright/test";
|
|
3
|
+
import { waitForActionSettled } from "@vease_tests/utils/wait_for_action_settled";
|
|
4
|
+
|
|
5
|
+
interface Texture {
|
|
6
|
+
name: string;
|
|
7
|
+
filePath: string;
|
|
8
|
+
}
|
|
9
|
+
|
|
10
|
+
async function selectOverlayListItem(window: Page, text: string): Promise<void> {
|
|
11
|
+
await window
|
|
12
|
+
.locator(".v-overlay-container")
|
|
13
|
+
.locator(".v-list-item")
|
|
14
|
+
.filter({ hasText: text, visible: true })
|
|
15
|
+
.first()
|
|
16
|
+
.click();
|
|
17
|
+
await waitForActionSettled(window);
|
|
18
|
+
}
|
|
19
|
+
|
|
20
|
+
async function setFeatureTextures(
|
|
21
|
+
window: Page,
|
|
22
|
+
menuTestId: string,
|
|
23
|
+
texture: Texture,
|
|
24
|
+
): Promise<void> {
|
|
25
|
+
await ensureMenuOpen(window, menuTestId);
|
|
26
|
+
await ensureFeatureVisible(window, menuTestId);
|
|
27
|
+
const container = window.getByTestId(menuTestId);
|
|
28
|
+
await container.getByTestId("coloringStyleSelector").first().click();
|
|
29
|
+
await waitForActionSettled(window);
|
|
30
|
+
await selectOverlayListItem(window, "Textures");
|
|
31
|
+
|
|
32
|
+
await container.getByTestId("textureNameSelector").first().click();
|
|
33
|
+
await waitForActionSettled(window);
|
|
34
|
+
await selectOverlayListItem(window, texture.name);
|
|
35
|
+
|
|
36
|
+
const fileInput = container.locator('input[type="file"][accept*="image/png"]').first();
|
|
37
|
+
await fileInput.setInputFiles(texture.filePath);
|
|
38
|
+
await waitForActionSettled(window);
|
|
39
|
+
}
|
|
40
|
+
|
|
41
|
+
export { setFeatureTextures };
|
|
@@ -1,9 +1,21 @@
|
|
|
1
|
+
// Node imports
|
|
2
|
+
import path from "node:path";
|
|
3
|
+
|
|
4
|
+
// Third party imports
|
|
1
5
|
import type { Page } from "@playwright/test";
|
|
2
|
-
|
|
3
|
-
|
|
6
|
+
|
|
7
|
+
// Local imports
|
|
8
|
+
import { meshViewerObjectType, polygonsFeatureName } from "@vease_tests/utils/constants";
|
|
9
|
+
import { setFeatureTextures } from "@vease_tests/utils/data/helpers/textures";
|
|
10
|
+
|
|
11
|
+
const __dirname = import.meta.dirname;
|
|
12
|
+
const texture = {
|
|
13
|
+
name: "test_texture",
|
|
14
|
+
filePath: path.join(__dirname, "..", "..", "..", "..", "tests", "data", "test_texture.png"),
|
|
15
|
+
};
|
|
4
16
|
|
|
5
17
|
async function setMeshPolygonsTextures(window: Page): Promise<void> {
|
|
6
|
-
await
|
|
18
|
+
await setFeatureTextures(window, `${meshViewerObjectType}${polygonsFeatureName}Menu`, texture);
|
|
7
19
|
}
|
|
8
20
|
|
|
9
21
|
export { setMeshPolygonsTextures };
|
|
@@ -154,32 +154,6 @@ async function dragContextMenu(
|
|
|
154
154
|
await dragElement(window, centerButton, { targetX, targetY });
|
|
155
155
|
}
|
|
156
156
|
|
|
157
|
-
async function setFeatureTextures(
|
|
158
|
-
window: Page,
|
|
159
|
-
viewerObjectType: string,
|
|
160
|
-
feature: string,
|
|
161
|
-
): Promise<void> {
|
|
162
|
-
const menuTestId = `${viewerObjectType}${feature}Menu`;
|
|
163
|
-
await ensureMenuOpen(window, menuTestId);
|
|
164
|
-
await ensureFeatureVisible(window, menuTestId);
|
|
165
|
-
const container = window.getByTestId(menuTestId);
|
|
166
|
-
const selector = container.getByTestId("coloringStyleSelector").first();
|
|
167
|
-
await selector.click();
|
|
168
|
-
await waitForActionSettled(window);
|
|
169
|
-
|
|
170
|
-
const listItem = window
|
|
171
|
-
.locator(".v-overlay-container")
|
|
172
|
-
.locator(".v-list-item")
|
|
173
|
-
.filter({ hasText: "Textures", visible: true })
|
|
174
|
-
.first();
|
|
175
|
-
await listItem.click();
|
|
176
|
-
await waitForActionSettled(window);
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
async function setPolygonsTextures(window: Page, viewerObjectType: string): Promise<void> {
|
|
180
|
-
await setFeatureTextures(window, viewerObjectType, "Polygons");
|
|
181
|
-
}
|
|
182
|
-
|
|
183
157
|
async function hoverViewer(window: Page, position?: { x: number; y: number }): Promise<void> {
|
|
184
158
|
const hybridViewerCanvas = getHybridViewerCanvas(window);
|
|
185
159
|
const box = await hybridViewerCanvas.boundingBox();
|
|
@@ -379,7 +353,6 @@ export {
|
|
|
379
353
|
setEdgesWidth,
|
|
380
354
|
setPointsSize,
|
|
381
355
|
setPointsVisibility,
|
|
382
|
-
setPolygonsTextures,
|
|
383
356
|
setPolygonsVisibility,
|
|
384
357
|
setPolyhedraVisibility,
|
|
385
358
|
setVisibilityGeneric,
|