@geode/opengeodeweb-front 10.6.2 → 10.6.3-rc.1
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/.eslintrc.cjs +1 -1
- package/.oxlintrc.json +3 -22
- package/app/assets/geode_objects.js +26 -26
- package/app/components/Carousel.vue +62 -66
- package/app/components/CrsSelector.vue +48 -52
- package/app/components/DeleteDialog.vue +21 -37
- package/app/components/DragAndDrop.vue +35 -41
- package/app/components/ExtensionSelector.vue +50 -63
- package/app/components/FeedBack/ErrorBanner.vue +7 -10
- package/app/components/FeedBack/Snackers.vue +12 -14
- package/app/components/FetchingData.vue +1 -6
- package/app/components/FileSelector.vue +41 -47
- package/app/components/FileUploader.vue +62 -79
- package/app/components/GlassCard.vue +19 -19
- package/app/components/HybridRenderingView.vue +37 -38
- package/app/components/InfraConnected.vue +3 -3
- package/app/components/Inspector/InspectionButton.vue +27 -31
- package/app/components/Inspector/ResultPanel.vue +13 -24
- package/app/components/Launcher.vue +13 -13
- package/app/components/Loading.vue +63 -69
- package/app/components/MissingFilesSelector.vue +53 -73
- package/app/components/ObjectSelector.vue +81 -99
- package/app/components/PackagesVersions.vue +27 -30
- package/app/components/Recaptcha.vue +60 -71
- package/app/components/RemoteRenderingView.vue +102 -108
- package/app/components/Screenshot.vue +36 -42
- package/app/components/SearchBar.vue +5 -5
- package/app/components/Step.vue +37 -44
- package/app/components/Stepper.vue +29 -35
- package/app/components/VeaseViewToolbar.vue +69 -78
- package/app/components/ViewToolbar.vue +41 -45
- package/app/components/Viewer/BreadCrumb.vue +18 -30
- package/app/components/Viewer/ContextMenu.vue +176 -179
- package/app/components/Viewer/ContextMenuItem.vue +105 -117
- package/app/components/Viewer/EdgedCurve/PointsOptions.vue +6 -9
- package/app/components/Viewer/EdgedCurve/SpecificEdgesOptions.vue +82 -93
- package/app/components/Viewer/Generic/Mesh/CellsOptions.vue +84 -99
- package/app/components/Viewer/Generic/Mesh/EdgesOptions.vue +83 -98
- package/app/components/Viewer/Generic/Mesh/PointsOptions.vue +62 -73
- package/app/components/Viewer/Generic/Mesh/PolygonsOptions.vue +84 -108
- package/app/components/Viewer/Generic/Mesh/PolyhedraOptions.vue +82 -105
- package/app/components/Viewer/Generic/Model/EdgesOptions.vue +19 -23
- package/app/components/Viewer/Generic/Model/PointsOptions.vue +26 -30
- package/app/components/Viewer/Grid/2D/CellsOptions.vue +5 -5
- package/app/components/Viewer/Grid/2D/EdgesOptions.vue +6 -9
- package/app/components/Viewer/Grid/2D/PointsOptions.vue +6 -9
- package/app/components/Viewer/Grid/3D/CellsOptions.vue +5 -5
- package/app/components/Viewer/Grid/3D/EdgesOptions.vue +6 -9
- package/app/components/Viewer/Grid/3D/FacetsOptions.vue +5 -5
- package/app/components/Viewer/Grid/3D/PointsOptions.vue +6 -9
- package/app/components/Viewer/HybridSolid/EdgesOptions.vue +6 -9
- package/app/components/Viewer/HybridSolid/PointsOptions.vue +6 -9
- package/app/components/Viewer/HybridSolid/PolygonsOptions.vue +6 -9
- package/app/components/Viewer/HybridSolid/PolyhedraOptions.vue +6 -9
- package/app/components/Viewer/Options/AttributeColorBar.vue +8 -8
- package/app/components/Viewer/Options/AttributeSelector.vue +73 -78
- package/app/components/Viewer/Options/ColorMapList.vue +115 -140
- package/app/components/Viewer/Options/ColorMapPicker.vue +128 -142
- package/app/components/Viewer/Options/ColorPicker.vue +9 -9
- package/app/components/Viewer/Options/ColoringTypeSelector.vue +77 -91
- package/app/components/Viewer/Options/TextureItem.vue +54 -58
- package/app/components/Viewer/Options/TexturesSelector.vue +22 -26
- package/app/components/Viewer/Options/VisibilitySwitch.vue +1 -1
- package/app/components/Viewer/PointSet/SpecificPointsOptions.vue +61 -68
- package/app/components/Viewer/PolygonalSurface/EdgesOptions.vue +6 -9
- package/app/components/Viewer/PolygonalSurface/PointsOptions.vue +6 -9
- package/app/components/Viewer/PolygonalSurface/SpecificPolygonsOptions.vue +83 -103
- package/app/components/Viewer/Solid/EdgesOptions.vue +6 -9
- package/app/components/Viewer/Solid/PointsOptions.vue +6 -9
- package/app/components/Viewer/Solid/PolygonsOptions.vue +6 -9
- package/app/components/Viewer/Solid/SpecificPolyhedraOptions.vue +82 -105
- package/app/components/Viewer/TetrahedralSolid/TetrahedraOptions.vue +5 -5
- package/app/components/Viewer/TetrahedralSolid/TrianglesOptions.vue +5 -5
- package/app/components/Viewer/Tree/ObjectTree.vue +80 -89
- package/app/components/Viewer/TreeComponent.vue +43 -49
- package/app/components/Viewer/TreeObject.vue +48 -50
- package/app/components/Viewer/TriangulatedSurface/EdgesOptions.vue +6 -9
- package/app/components/Viewer/TriangulatedSurface/PointsOptions.vue +5 -5
- package/app/components/Viewer/TriangulatedSurface/TrianglesOptions.vue +5 -5
- package/app/components/Wrapper.vue +8 -8
- package/app/components/ZScaling.vue +18 -27
- package/app/composables/project_manager.js +57 -67
- package/app/composables/run_function_when_microservices_connected.js +8 -8
- package/app/plugins/auto_store_register.js +11 -13
- package/app/stores/app.js +118 -138
- package/app/stores/data.js +52 -68
- package/app/stores/data_style.js +36 -36
- package/app/stores/feedback.js +17 -20
- package/app/stores/geode.js +54 -55
- package/app/stores/hybrid_viewer.js +164 -177
- package/app/stores/infra.js +45 -55
- package/app/stores/lambda.js +26 -26
- package/app/stores/menu.js +78 -85
- package/app/stores/treeview.js +57 -65
- package/app/stores/viewer.js +92 -104
- package/app/utils/colormap.js +3 -3
- package/app/utils/config.js +16 -22
- package/app/utils/default_styles.js +50 -62
- package/app/utils/extension.js +44 -44
- package/app/utils/file_import_workflow.js +50 -64
- package/app/utils/local/app_mode.js +2 -2
- package/app/utils/local/cleanup.js +66 -72
- package/app/utils/local/microservices.js +61 -71
- package/app/utils/local/path.js +16 -19
- package/app/utils/local/scripts.js +22 -22
- package/app/utils/recaptcha.js +6 -6
- package/app/utils/server.js +21 -24
- package/app/utils/status.js +2 -2
- package/app/utils/treeview.js +4 -4
- package/app/utils/validate_schema.js +7 -7
- package/commitlint.config.js +2 -2
- package/eslint.config.js +4 -4
- package/internal/database/database.js +38 -46
- package/internal/database/extended_database.js +9 -10
- package/internal/database/tables/data.js +2 -3
- package/internal/database/tables/model_components.js +1 -1
- package/internal/database/tables/model_components_relation.js +1 -1
- package/internal/stores/data_style/mesh/cells/cell.js +47 -63
- package/internal/stores/data_style/mesh/cells/color.js +11 -16
- package/internal/stores/data_style/mesh/cells/common.js +6 -6
- package/internal/stores/data_style/mesh/cells/index.js +37 -47
- package/internal/stores/data_style/mesh/cells/textures.js +11 -12
- package/internal/stores/data_style/mesh/cells/vertex.js +47 -58
- package/internal/stores/data_style/mesh/cells/visibility.js +11 -16
- package/internal/stores/data_style/mesh/edges/color.js +11 -16
- package/internal/stores/data_style/mesh/edges/common.js +6 -6
- package/internal/stores/data_style/mesh/edges/edge.js +47 -63
- package/internal/stores/data_style/mesh/edges/index.js +38 -52
- package/internal/stores/data_style/mesh/edges/vertex.js +47 -58
- package/internal/stores/data_style/mesh/edges/visibility.js +11 -16
- package/internal/stores/data_style/mesh/edges/width.js +11 -16
- package/internal/stores/data_style/mesh/index.js +34 -34
- package/internal/stores/data_style/mesh/points/color.js +11 -16
- package/internal/stores/data_style/mesh/points/common.js +6 -6
- package/internal/stores/data_style/mesh/points/index.js +35 -49
- package/internal/stores/data_style/mesh/points/size.js +11 -16
- package/internal/stores/data_style/mesh/points/vertex.js +47 -58
- package/internal/stores/data_style/mesh/points/visibility.js +11 -16
- package/internal/stores/data_style/mesh/polygons/color.js +11 -16
- package/internal/stores/data_style/mesh/polygons/common.js +6 -6
- package/internal/stores/data_style/mesh/polygons/index.js +36 -45
- package/internal/stores/data_style/mesh/polygons/polygon.js +45 -56
- package/internal/stores/data_style/mesh/polygons/textures.js +11 -16
- package/internal/stores/data_style/mesh/polygons/vertex.js +47 -58
- package/internal/stores/data_style/mesh/polygons/visibility.js +11 -16
- package/internal/stores/data_style/mesh/polyhedra/color.js +11 -16
- package/internal/stores/data_style/mesh/polyhedra/common.js +6 -6
- package/internal/stores/data_style/mesh/polyhedra/index.js +29 -42
- package/internal/stores/data_style/mesh/polyhedra/polyhedron.js +43 -47
- package/internal/stores/data_style/mesh/polyhedra/vertex.js +47 -58
- package/internal/stores/data_style/mesh/polyhedra/visibility.js +11 -17
- package/internal/stores/data_style/model/blocks/color.js +21 -24
- package/internal/stores/data_style/model/blocks/common.js +6 -6
- package/internal/stores/data_style/model/blocks/index.js +13 -17
- package/internal/stores/data_style/model/blocks/visibility.js +21 -24
- package/internal/stores/data_style/model/corners/color.js +21 -24
- package/internal/stores/data_style/model/corners/common.js +6 -6
- package/internal/stores/data_style/model/corners/index.js +14 -18
- package/internal/stores/data_style/model/corners/visibility.js +21 -25
- package/internal/stores/data_style/model/edges/common.js +4 -4
- package/internal/stores/data_style/model/edges/index.js +7 -7
- package/internal/stores/data_style/model/edges/visibility.js +11 -15
- package/internal/stores/data_style/model/index.js +84 -100
- package/internal/stores/data_style/model/lines/color.js +21 -24
- package/internal/stores/data_style/model/lines/common.js +6 -6
- package/internal/stores/data_style/model/lines/index.js +13 -17
- package/internal/stores/data_style/model/lines/visibility.js +21 -24
- package/internal/stores/data_style/model/points/common.js +4 -4
- package/internal/stores/data_style/model/points/index.js +9 -9
- package/internal/stores/data_style/model/points/size.js +11 -11
- package/internal/stores/data_style/model/points/visibility.js +11 -15
- package/internal/stores/data_style/model/surfaces/color.js +21 -24
- package/internal/stores/data_style/model/surfaces/common.js +6 -6
- package/internal/stores/data_style/model/surfaces/index.js +14 -22
- package/internal/stores/data_style/model/surfaces/visibility.js +18 -22
- package/internal/stores/data_style/state.js +11 -11
- package/internal/utils/api_fetch.js +24 -34
- package/internal/utils/upload_file.js +19 -24
- package/internal/utils/viewer_call.js +23 -36
- package/nuxt.config.js +7 -11
- package/package.json +3 -3
- package/scripts/generate_geode_objects.js +14 -16
- package/server/api/app/kill.post.js +4 -4
- package/server/api/app/project_folder_path.post.js +11 -11
- package/server/api/app/run_back.post.js +12 -12
- package/server/api/app/run_viewer.post.js +12 -12
- package/server/api/extensions/run.post.js +34 -41
- package/server/api/extensions/upload.put.js +48 -62
- package/tests/integration/setup.js +43 -53
- package/tests/integration/stores/data_style/mesh/cells.nuxt.test.js +90 -116
- package/tests/integration/stores/data_style/mesh/edges.nuxt.test.js +81 -107
- package/tests/integration/stores/data_style/mesh/index.nuxt.test.js +38 -41
- package/tests/integration/stores/data_style/mesh/points.nuxt.test.js +85 -101
- package/tests/integration/stores/data_style/mesh/polygons.nuxt.test.js +89 -113
- package/tests/integration/stores/data_style/mesh/polyhedra.nuxt.test.js +81 -105
- package/tests/integration/stores/data_style/model/blocks.nuxt.test.js +56 -73
- package/tests/integration/stores/data_style/model/corners.nuxt.test.js +59 -76
- package/tests/integration/stores/data_style/model/edges.nuxt.test.js +39 -42
- package/tests/integration/stores/data_style/model/index.nuxt.test.js +31 -34
- package/tests/integration/stores/data_style/model/lines.nuxt.test.js +60 -73
- package/tests/integration/stores/data_style/model/points.nuxt.test.js +52 -55
- package/tests/integration/stores/data_style/model/surfaces.nuxt.test.js +59 -80
- package/tests/integration/stores/viewer.nuxt.test.js +35 -38
- package/tests/setup_indexeddb.js +2 -2
- package/tests/unit/components/CrsSelector.nuxt.test.js +28 -28
- package/tests/unit/components/ExtensionSelector.nuxt.test.js +33 -35
- package/tests/unit/components/FeedBack/ErrorsBanner.nuxt.test.js +23 -23
- package/tests/unit/components/FeedBack/Snackers.nuxt.test.js +18 -18
- package/tests/unit/components/FileSelector.nuxt.test.js +57 -59
- package/tests/unit/components/FileUploader.nuxt.test.js +35 -39
- package/tests/unit/components/Inspector/InspectionButton.nuxt.test.js +28 -28
- package/tests/unit/components/Inspector/ResultPanel.nuxt.test.js +22 -27
- package/tests/unit/components/Launcher.nuxt.test.js +20 -22
- package/tests/unit/components/MissingFilesSelector.nuxt.test.js +37 -37
- package/tests/unit/components/ObjectSelector.nuxt.test.js +62 -62
- package/tests/unit/components/PackagesVersions.nuxt.test.js +16 -16
- package/tests/unit/components/Step.nuxt.test.js +18 -19
- package/tests/unit/components/Stepper.nuxt.test.js +18 -18
- package/tests/unit/composables/api_fetch.nuxt.test.js +34 -36
- package/tests/unit/composables/project_manager.nuxt.test.js +93 -112
- package/tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js +36 -36
- package/tests/unit/composables/upload_file.nuxt.test.js +27 -29
- package/tests/unit/plugins/project_load.nuxt.test.js +31 -33
- package/tests/unit/stores/app.nuxt.test.js +90 -92
- package/tests/unit/stores/feedback.nuxt.test.js +47 -57
- package/tests/unit/stores/geode.nuxt.test.js +111 -115
- package/tests/unit/stores/infra.nuxt.test.js +148 -148
- package/tests/unit/stores/lambda.nuxt.test.js +72 -74
- package/tests/unit/stores/treeview.nuxt.test.js +19 -21
- package/tests/unit/stores/viewer.nuxt.test.js +109 -122
- package/tests/unit/utils/recaptcha.nuxt.test.js +25 -29
- package/tests/unit/utils/validate_schema.nuxt.test.js +17 -17
- package/tests/utils.js +11 -11
- package/tests/vitest.config.js +9 -9
- package/vuetify_config.js +2 -2
|
@@ -1,182 +1,158 @@
|
|
|
1
1
|
// Third party imports
|
|
2
|
-
import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"
|
|
3
|
-
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json" with { type: "json" }
|
|
2
|
+
import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
|
|
3
|
+
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json" with { type: "json" };
|
|
4
4
|
|
|
5
5
|
// Local imports
|
|
6
|
-
import { Status } from "@ogw_front/utils/status"
|
|
7
|
-
import { cleanupBackend } from "@ogw_front/utils/local/cleanup"
|
|
8
|
-
import { setupIntegrationTests } from "@ogw_tests/integration/setup"
|
|
9
|
-
import { useDataStyleStore } from "@ogw_front/stores/data_style"
|
|
10
|
-
import { useViewerStore } from "@ogw_front/stores/viewer"
|
|
6
|
+
import { Status } from "@ogw_front/utils/status";
|
|
7
|
+
import { cleanupBackend } from "@ogw_front/utils/local/cleanup";
|
|
8
|
+
import { setupIntegrationTests } from "@ogw_tests/integration/setup";
|
|
9
|
+
import { useDataStyleStore } from "@ogw_front/stores/data_style";
|
|
10
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
11
11
|
|
|
12
12
|
// Local constants
|
|
13
|
-
const INTERVAL_TIMEOUT = 20_000
|
|
14
|
-
const mesh_polygons_schemas = viewer_schemas.opengeodeweb_viewer.mesh.polygons
|
|
15
|
-
const file_name = "test.og_psf3d"
|
|
16
|
-
const geode_object = "PolygonalSurface3D"
|
|
17
|
-
const vertex_attribute = { name: "points" }
|
|
18
|
-
const polygon_attribute = { name: "test_attribute" }
|
|
13
|
+
const INTERVAL_TIMEOUT = 20_000;
|
|
14
|
+
const mesh_polygons_schemas = viewer_schemas.opengeodeweb_viewer.mesh.polygons;
|
|
15
|
+
const file_name = "test.og_psf3d";
|
|
16
|
+
const geode_object = "PolygonalSurface3D";
|
|
17
|
+
const vertex_attribute = { name: "points" };
|
|
18
|
+
const polygon_attribute = { name: "test_attribute" };
|
|
19
19
|
|
|
20
20
|
let id = "",
|
|
21
|
-
projectFolderPath = ""
|
|
21
|
+
projectFolderPath = "";
|
|
22
22
|
|
|
23
23
|
beforeEach(async () => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
geode_object,
|
|
27
|
-
))
|
|
28
|
-
}, INTERVAL_TIMEOUT)
|
|
24
|
+
({ id, projectFolderPath } = await setupIntegrationTests(file_name, geode_object));
|
|
25
|
+
}, INTERVAL_TIMEOUT);
|
|
29
26
|
|
|
30
27
|
afterEach(async () => {
|
|
31
|
-
console.log("afterEach mesh polygons kill", projectFolderPath)
|
|
32
|
-
await cleanupBackend(projectFolderPath)
|
|
33
|
-
})
|
|
28
|
+
console.log("afterEach mesh polygons kill", projectFolderPath);
|
|
29
|
+
await cleanupBackend(projectFolderPath);
|
|
30
|
+
});
|
|
34
31
|
|
|
35
32
|
describe("Mesh polygons", () => {
|
|
36
33
|
describe("Polygons visibility", () => {
|
|
37
34
|
test("Visibility true", async () => {
|
|
38
|
-
const dataStyleStore = useDataStyleStore()
|
|
39
|
-
const viewerStore = useViewerStore()
|
|
40
|
-
const visibility = true
|
|
41
|
-
const spy = vi.spyOn(viewerStore, "request")
|
|
42
|
-
const result = dataStyleStore.setMeshPolygonsVisibility(id, visibility)
|
|
43
|
-
expect(result).toBeInstanceOf(Promise)
|
|
44
|
-
await result
|
|
35
|
+
const dataStyleStore = useDataStyleStore();
|
|
36
|
+
const viewerStore = useViewerStore();
|
|
37
|
+
const visibility = true;
|
|
38
|
+
const spy = vi.spyOn(viewerStore, "request");
|
|
39
|
+
const result = dataStyleStore.setMeshPolygonsVisibility(id, visibility);
|
|
40
|
+
expect(result).toBeInstanceOf(Promise);
|
|
41
|
+
await result;
|
|
45
42
|
expect(spy).toHaveBeenCalledWith(
|
|
46
43
|
mesh_polygons_schemas.visibility,
|
|
47
44
|
{ id, visibility },
|
|
48
45
|
{
|
|
49
46
|
response_function: expect.any(Function),
|
|
50
47
|
},
|
|
51
|
-
)
|
|
52
|
-
expect(dataStyleStore.meshPolygonsVisibility(id)).toBe(visibility)
|
|
53
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
54
|
-
})
|
|
55
|
-
})
|
|
48
|
+
);
|
|
49
|
+
expect(dataStyleStore.meshPolygonsVisibility(id)).toBe(visibility);
|
|
50
|
+
expect(viewerStore.status).toBe(Status.CONNECTED);
|
|
51
|
+
});
|
|
52
|
+
});
|
|
56
53
|
|
|
57
54
|
describe("Polygons color", () => {
|
|
58
55
|
test("Color red", async () => {
|
|
59
|
-
const dataStyleStore = useDataStyleStore()
|
|
60
|
-
const viewerStore = useViewerStore()
|
|
61
|
-
const color = { r: 255, g: 0, b: 0 }
|
|
62
|
-
const spy = vi.spyOn(viewerStore, "request")
|
|
63
|
-
const result = dataStyleStore.setMeshPolygonsColor(id, color)
|
|
64
|
-
expect(result).toBeInstanceOf(Promise)
|
|
65
|
-
await result
|
|
56
|
+
const dataStyleStore = useDataStyleStore();
|
|
57
|
+
const viewerStore = useViewerStore();
|
|
58
|
+
const color = { r: 255, g: 0, b: 0 };
|
|
59
|
+
const spy = vi.spyOn(viewerStore, "request");
|
|
60
|
+
const result = dataStyleStore.setMeshPolygonsColor(id, color);
|
|
61
|
+
expect(result).toBeInstanceOf(Promise);
|
|
62
|
+
await result;
|
|
66
63
|
expect(spy).toHaveBeenCalledWith(
|
|
67
64
|
mesh_polygons_schemas.color,
|
|
68
65
|
{ id, color },
|
|
69
66
|
{
|
|
70
67
|
response_function: expect.any(Function),
|
|
71
68
|
},
|
|
72
|
-
)
|
|
73
|
-
expect(dataStyleStore.meshPolygonsColor(id)).toStrictEqual(color)
|
|
74
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
75
|
-
})
|
|
76
|
-
})
|
|
69
|
+
);
|
|
70
|
+
expect(dataStyleStore.meshPolygonsColor(id)).toStrictEqual(color);
|
|
71
|
+
expect(viewerStore.status).toBe(Status.CONNECTED);
|
|
72
|
+
});
|
|
73
|
+
});
|
|
77
74
|
|
|
78
75
|
describe("Polygons vertex attribute", () => {
|
|
79
76
|
test("Coloring vertex attribute", async () => {
|
|
80
|
-
const dataStyleStore = useDataStyleStore()
|
|
81
|
-
const viewerStore = useViewerStore()
|
|
82
|
-
const spy = vi.spyOn(viewerStore, "request")
|
|
83
|
-
const result = dataStyleStore.setMeshPolygonsVertexAttributeName(
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
)
|
|
87
|
-
expect(result).toBeInstanceOf(Promise)
|
|
88
|
-
await result
|
|
77
|
+
const dataStyleStore = useDataStyleStore();
|
|
78
|
+
const viewerStore = useViewerStore();
|
|
79
|
+
const spy = vi.spyOn(viewerStore, "request");
|
|
80
|
+
const result = dataStyleStore.setMeshPolygonsVertexAttributeName(id, vertex_attribute.name);
|
|
81
|
+
expect(result).toBeInstanceOf(Promise);
|
|
82
|
+
await result;
|
|
89
83
|
expect(spy).toHaveBeenCalledWith(
|
|
90
84
|
mesh_polygons_schemas.attribute.vertex.name,
|
|
91
85
|
{ id, ...vertex_attribute },
|
|
92
86
|
{
|
|
93
87
|
response_function: expect.any(Function),
|
|
94
88
|
},
|
|
95
|
-
)
|
|
96
|
-
expect(dataStyleStore.meshPolygonsVertexAttributeName(id)).toBe(
|
|
97
|
-
|
|
98
|
-
|
|
99
|
-
|
|
100
|
-
})
|
|
101
|
-
})
|
|
89
|
+
);
|
|
90
|
+
expect(dataStyleStore.meshPolygonsVertexAttributeName(id)).toBe(vertex_attribute.name);
|
|
91
|
+
expect(viewerStore.status).toBe(Status.CONNECTED);
|
|
92
|
+
});
|
|
93
|
+
});
|
|
102
94
|
|
|
103
95
|
describe("Polygons polygon attribute", () => {
|
|
104
96
|
test("Coloring polygon attribute", async () => {
|
|
105
|
-
const dataStyleStore = useDataStyleStore()
|
|
106
|
-
const viewerStore = useViewerStore()
|
|
107
|
-
const spy = vi.spyOn(viewerStore, "request")
|
|
108
|
-
const result = dataStyleStore.setMeshPolygonsPolygonAttributeName(
|
|
109
|
-
|
|
110
|
-
|
|
111
|
-
)
|
|
112
|
-
expect(result).toBeInstanceOf(Promise)
|
|
113
|
-
await result
|
|
97
|
+
const dataStyleStore = useDataStyleStore();
|
|
98
|
+
const viewerStore = useViewerStore();
|
|
99
|
+
const spy = vi.spyOn(viewerStore, "request");
|
|
100
|
+
const result = dataStyleStore.setMeshPolygonsPolygonAttributeName(id, polygon_attribute.name);
|
|
101
|
+
expect(result).toBeInstanceOf(Promise);
|
|
102
|
+
await result;
|
|
114
103
|
expect(spy).toHaveBeenCalledWith(
|
|
115
104
|
mesh_polygons_schemas.attribute.polygon.name,
|
|
116
105
|
{ id, ...polygon_attribute },
|
|
117
106
|
{
|
|
118
107
|
response_function: expect.any(Function),
|
|
119
108
|
},
|
|
120
|
-
)
|
|
121
|
-
expect(dataStyleStore.meshPolygonsPolygonAttributeName(id)).toBe(
|
|
122
|
-
|
|
123
|
-
|
|
124
|
-
|
|
125
|
-
})
|
|
126
|
-
})
|
|
109
|
+
);
|
|
110
|
+
expect(dataStyleStore.meshPolygonsPolygonAttributeName(id)).toBe(polygon_attribute.name);
|
|
111
|
+
expect(viewerStore.status).toBe(Status.CONNECTED);
|
|
112
|
+
});
|
|
113
|
+
});
|
|
127
114
|
|
|
128
115
|
describe("Polygons active coloring", () => {
|
|
129
116
|
test("test coloring", async () => {
|
|
130
|
-
const dataStyleStore = useDataStyleStore()
|
|
131
|
-
const viewerStore = useViewerStore()
|
|
117
|
+
const dataStyleStore = useDataStyleStore();
|
|
118
|
+
const viewerStore = useViewerStore();
|
|
132
119
|
const coloringTypes = [
|
|
133
120
|
{ name: "color" },
|
|
134
121
|
{
|
|
135
122
|
name: "vertex",
|
|
136
123
|
function: () =>
|
|
137
|
-
dataStyleStore.setMeshPolygonsVertexAttributeName(
|
|
138
|
-
id,
|
|
139
|
-
vertex_attribute.name,
|
|
140
|
-
),
|
|
124
|
+
dataStyleStore.setMeshPolygonsVertexAttributeName(id, vertex_attribute.name),
|
|
141
125
|
},
|
|
142
126
|
{
|
|
143
127
|
name: "polygon",
|
|
144
128
|
function: () =>
|
|
145
|
-
dataStyleStore.setMeshPolygonsPolygonAttributeName(
|
|
146
|
-
id,
|
|
147
|
-
polygon_attribute.name,
|
|
148
|
-
),
|
|
129
|
+
dataStyleStore.setMeshPolygonsPolygonAttributeName(id, polygon_attribute.name),
|
|
149
130
|
},
|
|
150
|
-
]
|
|
131
|
+
];
|
|
151
132
|
|
|
152
133
|
async function testColoring(coloringType, expectedColoringType) {
|
|
153
134
|
if (coloringType.function) {
|
|
154
|
-
await coloringType.function()
|
|
135
|
+
await coloringType.function();
|
|
155
136
|
}
|
|
156
|
-
const result = dataStyleStore.setMeshPolygonsActiveColoring(
|
|
157
|
-
|
|
158
|
-
|
|
159
|
-
)
|
|
160
|
-
expect(
|
|
161
|
-
await result
|
|
162
|
-
expect(dataStyleStore.meshPolygonsActiveColoring(id)).toBe(
|
|
163
|
-
expectedColoringType,
|
|
164
|
-
)
|
|
165
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
137
|
+
const result = dataStyleStore.setMeshPolygonsActiveColoring(id, coloringType.name);
|
|
138
|
+
expect(result).toBeInstanceOf(Promise);
|
|
139
|
+
await result;
|
|
140
|
+
expect(dataStyleStore.meshPolygonsActiveColoring(id)).toBe(expectedColoringType);
|
|
141
|
+
expect(viewerStore.status).toBe(Status.CONNECTED);
|
|
166
142
|
}
|
|
167
143
|
|
|
168
|
-
await testColoring(coloringTypes[0], "color")
|
|
169
|
-
await testColoring(coloringTypes[1], "vertex")
|
|
170
|
-
await testColoring(coloringTypes[2], "polygon")
|
|
171
|
-
})
|
|
172
|
-
})
|
|
144
|
+
await testColoring(coloringTypes[0], "color");
|
|
145
|
+
await testColoring(coloringTypes[1], "vertex");
|
|
146
|
+
await testColoring(coloringTypes[2], "polygon");
|
|
147
|
+
});
|
|
148
|
+
});
|
|
173
149
|
|
|
174
150
|
test("Polygons apply default style", async () => {
|
|
175
|
-
const dataStyleStore = useDataStyleStore()
|
|
176
|
-
const viewerStore = useViewerStore()
|
|
177
|
-
const result = dataStyleStore.applyMeshPolygonsStyle(id)
|
|
178
|
-
expect(result).toBeInstanceOf(Promise)
|
|
179
|
-
await result
|
|
180
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
181
|
-
})
|
|
182
|
-
})
|
|
151
|
+
const dataStyleStore = useDataStyleStore();
|
|
152
|
+
const viewerStore = useViewerStore();
|
|
153
|
+
const result = dataStyleStore.applyMeshPolygonsStyle(id);
|
|
154
|
+
expect(result).toBeInstanceOf(Promise);
|
|
155
|
+
await result;
|
|
156
|
+
expect(viewerStore.status).toBe(Status.CONNECTED);
|
|
157
|
+
});
|
|
158
|
+
});
|
|
@@ -1,171 +1,147 @@
|
|
|
1
1
|
// Third party imports
|
|
2
|
-
import { afterEach, beforeEach, describe, expect, test, vi } from "vitest"
|
|
3
|
-
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json" with { type: "json" }
|
|
2
|
+
import { afterEach, beforeEach, describe, expect, test, vi } from "vitest";
|
|
3
|
+
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json" with { type: "json" };
|
|
4
4
|
|
|
5
5
|
// Local imports
|
|
6
|
-
import { Status } from "@ogw_front/utils/status"
|
|
7
|
-
import { cleanupBackend } from "@ogw_front/utils/local/cleanup"
|
|
8
|
-
import { setupIntegrationTests } from "@ogw_tests/integration/setup"
|
|
9
|
-
import { useDataStyleStore } from "@ogw_front/stores/data_style"
|
|
10
|
-
import { useViewerStore } from "@ogw_front/stores/viewer"
|
|
6
|
+
import { Status } from "@ogw_front/utils/status";
|
|
7
|
+
import { cleanupBackend } from "@ogw_front/utils/local/cleanup";
|
|
8
|
+
import { setupIntegrationTests } from "@ogw_tests/integration/setup";
|
|
9
|
+
import { useDataStyleStore } from "@ogw_front/stores/data_style";
|
|
10
|
+
import { useViewerStore } from "@ogw_front/stores/viewer";
|
|
11
11
|
|
|
12
12
|
// Local constants
|
|
13
|
-
const INTERVAL_TIMEOUT = 20_000
|
|
14
|
-
const mesh_polyhedra_schemas = viewer_schemas.opengeodeweb_viewer.mesh.polyhedra
|
|
15
|
-
const file_name = "test.vtu"
|
|
16
|
-
const geode_object = "HybridSolid3D"
|
|
17
|
-
const vertex_attribute = { name: "toto_on_vertices" }
|
|
18
|
-
const polyhedron_attribute = { name: "toto_on_polyhedra" }
|
|
13
|
+
const INTERVAL_TIMEOUT = 20_000;
|
|
14
|
+
const mesh_polyhedra_schemas = viewer_schemas.opengeodeweb_viewer.mesh.polyhedra;
|
|
15
|
+
const file_name = "test.vtu";
|
|
16
|
+
const geode_object = "HybridSolid3D";
|
|
17
|
+
const vertex_attribute = { name: "toto_on_vertices" };
|
|
18
|
+
const polyhedron_attribute = { name: "toto_on_polyhedra" };
|
|
19
19
|
|
|
20
20
|
let id = "",
|
|
21
|
-
projectFolderPath = ""
|
|
21
|
+
projectFolderPath = "";
|
|
22
22
|
|
|
23
23
|
beforeEach(async () => {
|
|
24
|
-
|
|
25
|
-
|
|
26
|
-
geode_object,
|
|
27
|
-
))
|
|
28
|
-
}, INTERVAL_TIMEOUT)
|
|
24
|
+
({ id, projectFolderPath } = await setupIntegrationTests(file_name, geode_object));
|
|
25
|
+
}, INTERVAL_TIMEOUT);
|
|
29
26
|
|
|
30
27
|
afterEach(async () => {
|
|
31
|
-
console.log("afterEach mesh cells kill", projectFolderPath)
|
|
32
|
-
await cleanupBackend(projectFolderPath)
|
|
33
|
-
})
|
|
28
|
+
console.log("afterEach mesh cells kill", projectFolderPath);
|
|
29
|
+
await cleanupBackend(projectFolderPath);
|
|
30
|
+
});
|
|
34
31
|
|
|
35
32
|
describe("Mesh polyhedra", () => {
|
|
36
33
|
describe("Polyhedra", () => {
|
|
37
34
|
test("Polyhedra visibility", async () => {
|
|
38
|
-
const dataStyleStore = useDataStyleStore()
|
|
39
|
-
const viewerStore = useViewerStore()
|
|
40
|
-
const visibility = true
|
|
41
|
-
const spy = vi.spyOn(viewerStore, "request")
|
|
42
|
-
const result = dataStyleStore.setMeshPolyhedraVisibility(id, visibility)
|
|
43
|
-
expect(result).toBeInstanceOf(Promise)
|
|
44
|
-
await result
|
|
35
|
+
const dataStyleStore = useDataStyleStore();
|
|
36
|
+
const viewerStore = useViewerStore();
|
|
37
|
+
const visibility = true;
|
|
38
|
+
const spy = vi.spyOn(viewerStore, "request");
|
|
39
|
+
const result = dataStyleStore.setMeshPolyhedraVisibility(id, visibility);
|
|
40
|
+
expect(result).toBeInstanceOf(Promise);
|
|
41
|
+
await result;
|
|
45
42
|
expect(spy).toHaveBeenCalledWith(
|
|
46
43
|
mesh_polyhedra_schemas.visibility,
|
|
47
44
|
{ id, visibility },
|
|
48
45
|
{
|
|
49
46
|
response_function: expect.any(Function),
|
|
50
47
|
},
|
|
51
|
-
)
|
|
52
|
-
expect(dataStyleStore.meshPolyhedraVisibility(id)).toBe(visibility)
|
|
53
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
54
|
-
})
|
|
48
|
+
);
|
|
49
|
+
expect(dataStyleStore.meshPolyhedraVisibility(id)).toBe(visibility);
|
|
50
|
+
expect(viewerStore.status).toBe(Status.CONNECTED);
|
|
51
|
+
});
|
|
55
52
|
|
|
56
53
|
test("Polyhedra color red", async () => {
|
|
57
|
-
const dataStyleStore = useDataStyleStore()
|
|
58
|
-
const viewerStore = useViewerStore()
|
|
59
|
-
const color = { r: 255, g: 0, b: 0 }
|
|
60
|
-
const spy = vi.spyOn(viewerStore, "request")
|
|
61
|
-
const result = dataStyleStore.setMeshPolyhedraColor(id, color)
|
|
62
|
-
expect(result).toBeInstanceOf(Promise)
|
|
63
|
-
await result
|
|
54
|
+
const dataStyleStore = useDataStyleStore();
|
|
55
|
+
const viewerStore = useViewerStore();
|
|
56
|
+
const color = { r: 255, g: 0, b: 0 };
|
|
57
|
+
const spy = vi.spyOn(viewerStore, "request");
|
|
58
|
+
const result = dataStyleStore.setMeshPolyhedraColor(id, color);
|
|
59
|
+
expect(result).toBeInstanceOf(Promise);
|
|
60
|
+
await result;
|
|
64
61
|
expect(spy).toHaveBeenCalledWith(
|
|
65
62
|
mesh_polyhedra_schemas.color,
|
|
66
63
|
{ id, color },
|
|
67
64
|
{
|
|
68
65
|
response_function: expect.any(Function),
|
|
69
66
|
},
|
|
70
|
-
)
|
|
71
|
-
expect(dataStyleStore.meshPolyhedraColor(id)).toStrictEqual(color)
|
|
72
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
73
|
-
})
|
|
67
|
+
);
|
|
68
|
+
expect(dataStyleStore.meshPolyhedraColor(id)).toStrictEqual(color);
|
|
69
|
+
expect(viewerStore.status).toBe(Status.CONNECTED);
|
|
70
|
+
});
|
|
74
71
|
|
|
75
72
|
test("Polyhedra active coloring", async () => {
|
|
76
|
-
const dataStyleStore = useDataStyleStore()
|
|
77
|
-
const viewerStore = useViewerStore()
|
|
73
|
+
const dataStyleStore = useDataStyleStore();
|
|
74
|
+
const viewerStore = useViewerStore();
|
|
78
75
|
const coloringTypes = [
|
|
79
76
|
{ name: "color" },
|
|
80
77
|
{
|
|
81
78
|
name: "vertex",
|
|
82
79
|
function: () =>
|
|
83
|
-
dataStyleStore.setMeshPolyhedraVertexAttributeName(
|
|
84
|
-
id,
|
|
85
|
-
vertex_attribute.name,
|
|
86
|
-
),
|
|
80
|
+
dataStyleStore.setMeshPolyhedraVertexAttributeName(id, vertex_attribute.name),
|
|
87
81
|
},
|
|
88
82
|
{
|
|
89
83
|
name: "polyhedron",
|
|
90
84
|
function: () =>
|
|
91
|
-
dataStyleStore.setMeshPolyhedraPolyhedronAttributeName(
|
|
92
|
-
id,
|
|
93
|
-
polyhedron_attribute.name,
|
|
94
|
-
),
|
|
85
|
+
dataStyleStore.setMeshPolyhedraPolyhedronAttributeName(id, polyhedron_attribute.name),
|
|
95
86
|
},
|
|
96
|
-
]
|
|
87
|
+
];
|
|
97
88
|
async function testColoring(coloringType, expectedColoringType) {
|
|
98
89
|
if (coloringType.function) {
|
|
99
|
-
await coloringType.function()
|
|
90
|
+
await coloringType.function();
|
|
100
91
|
}
|
|
101
|
-
const result = dataStyleStore.setMeshPolyhedraActiveColoring(
|
|
102
|
-
|
|
103
|
-
|
|
104
|
-
)
|
|
105
|
-
expect(
|
|
106
|
-
await result
|
|
107
|
-
expect(dataStyleStore.meshPolyhedraActiveColoring(id)).toBe(
|
|
108
|
-
expectedColoringType,
|
|
109
|
-
)
|
|
110
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
92
|
+
const result = dataStyleStore.setMeshPolyhedraActiveColoring(id, coloringType.name);
|
|
93
|
+
expect(result).toBeInstanceOf(Promise);
|
|
94
|
+
await result;
|
|
95
|
+
expect(dataStyleStore.meshPolyhedraActiveColoring(id)).toBe(expectedColoringType);
|
|
96
|
+
expect(viewerStore.status).toBe(Status.CONNECTED);
|
|
111
97
|
}
|
|
112
98
|
|
|
113
|
-
await testColoring(coloringTypes[0], "color")
|
|
114
|
-
await testColoring(coloringTypes[1], "vertex")
|
|
115
|
-
await testColoring(coloringTypes[2], "polyhedron")
|
|
116
|
-
})
|
|
117
|
-
})
|
|
99
|
+
await testColoring(coloringTypes[0], "color");
|
|
100
|
+
await testColoring(coloringTypes[1], "vertex");
|
|
101
|
+
await testColoring(coloringTypes[2], "polyhedron");
|
|
102
|
+
});
|
|
103
|
+
});
|
|
118
104
|
|
|
119
105
|
test("Polyhedra vertex attribute", async () => {
|
|
120
|
-
const dataStyleStore = useDataStyleStore()
|
|
121
|
-
const viewerStore = useViewerStore()
|
|
106
|
+
const dataStyleStore = useDataStyleStore();
|
|
107
|
+
const viewerStore = useViewerStore();
|
|
122
108
|
|
|
123
|
-
const spy = vi.spyOn(viewerStore, "request")
|
|
124
|
-
await dataStyleStore.setMeshPolyhedraVertexAttributeName(
|
|
125
|
-
id,
|
|
126
|
-
vertex_attribute.name,
|
|
127
|
-
)
|
|
109
|
+
const spy = vi.spyOn(viewerStore, "request");
|
|
110
|
+
await dataStyleStore.setMeshPolyhedraVertexAttributeName(id, vertex_attribute.name);
|
|
128
111
|
expect(spy).toHaveBeenCalledWith(
|
|
129
112
|
mesh_polyhedra_schemas.attribute.vertex.name,
|
|
130
113
|
{ id, ...vertex_attribute },
|
|
131
114
|
{
|
|
132
115
|
response_function: expect.any(Function),
|
|
133
116
|
},
|
|
134
|
-
)
|
|
135
|
-
expect(dataStyleStore.meshPolyhedraVertexAttributeName(id)).toBe(
|
|
136
|
-
|
|
137
|
-
|
|
138
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
139
|
-
})
|
|
117
|
+
);
|
|
118
|
+
expect(dataStyleStore.meshPolyhedraVertexAttributeName(id)).toBe(vertex_attribute.name);
|
|
119
|
+
expect(viewerStore.status).toBe(Status.CONNECTED);
|
|
120
|
+
});
|
|
140
121
|
|
|
141
122
|
test("Polyhedra polyhedron attribute", async () => {
|
|
142
|
-
const dataStyleStore = useDataStyleStore()
|
|
143
|
-
const viewerStore = useViewerStore()
|
|
123
|
+
const dataStyleStore = useDataStyleStore();
|
|
124
|
+
const viewerStore = useViewerStore();
|
|
144
125
|
|
|
145
|
-
const spy = vi.spyOn(viewerStore, "request")
|
|
146
|
-
await dataStyleStore.setMeshPolyhedraPolyhedronAttributeName(
|
|
147
|
-
id,
|
|
148
|
-
polyhedron_attribute.name,
|
|
149
|
-
)
|
|
126
|
+
const spy = vi.spyOn(viewerStore, "request");
|
|
127
|
+
await dataStyleStore.setMeshPolyhedraPolyhedronAttributeName(id, polyhedron_attribute.name);
|
|
150
128
|
expect(spy).toHaveBeenCalledWith(
|
|
151
129
|
mesh_polyhedra_schemas.attribute.polyhedron.name,
|
|
152
130
|
{ id, ...polyhedron_attribute },
|
|
153
131
|
{
|
|
154
132
|
response_function: expect.any(Function),
|
|
155
133
|
},
|
|
156
|
-
)
|
|
157
|
-
expect(dataStyleStore.meshPolyhedraPolyhedronAttributeName(id)).toBe(
|
|
158
|
-
|
|
159
|
-
|
|
160
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
161
|
-
})
|
|
134
|
+
);
|
|
135
|
+
expect(dataStyleStore.meshPolyhedraPolyhedronAttributeName(id)).toBe(polyhedron_attribute.name);
|
|
136
|
+
expect(viewerStore.status).toBe(Status.CONNECTED);
|
|
137
|
+
});
|
|
162
138
|
|
|
163
139
|
test("Polyhedra apply default style", async () => {
|
|
164
|
-
const dataStyleStore = useDataStyleStore()
|
|
165
|
-
const viewerStore = useViewerStore()
|
|
166
|
-
const result = dataStyleStore.applyMeshPolyhedraStyle(id)
|
|
167
|
-
expect(result).toBeInstanceOf(Promise)
|
|
168
|
-
await result
|
|
169
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
170
|
-
})
|
|
171
|
-
})
|
|
140
|
+
const dataStyleStore = useDataStyleStore();
|
|
141
|
+
const viewerStore = useViewerStore();
|
|
142
|
+
const result = dataStyleStore.applyMeshPolyhedraStyle(id);
|
|
143
|
+
expect(result).toBeInstanceOf(Promise);
|
|
144
|
+
await result;
|
|
145
|
+
expect(viewerStore.status).toBe(Status.CONNECTED);
|
|
146
|
+
});
|
|
147
|
+
});
|