@geode/opengeodeweb-front 9.11.0-rc.9 → 9.11.2
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/.github/workflows/test.yml +0 -23
- package/components/FeedBack/ErrorBanner.vue +1 -1
- package/components/FeedBack/Snackers.vue +1 -1
- package/components/HybridRenderingView.vue +12 -38
- package/components/Launcher.vue +1 -1
- package/components/PackagesVersions.vue +1 -1
- package/components/Recaptcha.vue +1 -1
- package/components/RemoteRenderingView.vue +1 -1
- package/components/Viewer/BreadCrumb.vue +1 -1
- package/components/Viewer/Tree/ObjectTree.vue +1 -1
- package/components/Viewer/TreeObject.vue +1 -1
- package/components/Wrapper.vue +1 -1
- package/composables/api_fetch.js +2 -2
- package/composables/run_function_when_microservices_connected.js +1 -1
- package/composables/upload_file.js +2 -2
- package/composables/viewer_call.js +38 -38
- package/internal_stores/mesh/edges.js +52 -49
- package/internal_stores/mesh/index.js +14 -20
- package/internal_stores/mesh/points.js +7 -9
- package/internal_stores/mesh/polygons.js +7 -9
- package/internal_stores/mesh/polyhedra.js +6 -8
- package/internal_stores/model/blocks.js +1 -1
- package/internal_stores/model/corners.js +1 -1
- package/internal_stores/model/edges.js +8 -1
- package/internal_stores/model/index.js +1 -1
- package/internal_stores/model/lines.js +2 -2
- package/internal_stores/model/points.js +2 -2
- package/internal_stores/model/surfaces.js +1 -1
- package/package.json +6 -13
- package/stores/data_base.js +1 -9
- package/stores/data_style.js +6 -7
- package/stores/feedback.js +1 -1
- package/stores/geode.js +5 -5
- package/stores/hybrid_viewer.js +1 -1
- package/stores/infra.js +10 -10
- package/stores/treeview.js +1 -1
- package/stores/viewer.js +6 -5
- package/{tests/unit → test}/components/CrsSelector.nuxt.test.js +3 -6
- package/{tests/unit → test}/components/ExtensionSelector.nuxt.test.js +3 -6
- package/{tests/unit → test}/components/FeedBack/ErrorsBanner.nuxt.test.js +3 -10
- package/{tests/unit → test}/components/FeedBack/Snackers.nuxt.test.js +21 -24
- package/{tests/unit → test}/components/FileSelector.nuxt.test.js +2 -5
- package/{tests/unit → test}/components/FileUploader.nuxt.test.js +3 -6
- package/{tests/unit → test}/components/Inspector/InspectionButton.nuxt.test.js +3 -6
- package/{tests/unit → test}/components/Launcher.nuxt.test.js +2 -9
- package/{tests/unit → test}/components/MissingFilesSelector.nuxt.test.js +3 -6
- package/{tests/unit → test}/components/ObjectSelector.nuxt.test.js +3 -6
- package/{tests/unit → test}/components/PackagesVersions.nuxt.test.js +3 -5
- package/{tests/unit → test}/components/Stepper.nuxt.test.js +0 -1
- package/{tests/unit → test}/components/Wrapper.nuxt.test.js +1 -1
- package/{tests/unit → test}/composables/api_fetch.nuxt.test.js +2 -3
- package/{tests/unit/composables/run_function_when_microservices_connected.nuxt.test.js → test/composables/run_function_when_microservices_connected.test.js} +5 -18
- package/{tests/unit → test}/composables/upload_file.nuxt.test.js +8 -7
- package/{tests/unit → test}/stores/Feedback.nuxt.test.js +8 -12
- package/{tests/unit → test}/stores/Geode.nuxt.test.js +10 -33
- package/{tests/unit → test}/stores/Infra.nuxt.test.js +25 -58
- package/{tests/unit → test}/stores/Viewer.nuxt.test.js +20 -101
- package/{tests/unit → test}/utils/validate_schema.nuxt.test.js +0 -3
- package/vitest.config.js +13 -0
- package/geode-opengeodeweb-back-5.10.0-rc.8.tgz +0 -0
- package/geode-opengeodeweb-viewer-1.11.0-rc.4.tgz +0 -0
- package/tests/integration/data/fake_id/edged_curve.vtp +0 -20
- package/tests/integration/microservices/back/requirements.in +0 -1
- package/tests/integration/microservices/back/requirements.txt +0 -75
- package/tests/integration/microservices/viewer/requirements.in +0 -1
- package/tests/integration/microservices/viewer/requirements.txt +0 -87
- package/tests/integration/stores/DataStyle/mesh/Edges.nuxt.test.js +0 -138
- package/tests/vitest.config.js +0 -33
- package/utils/default_styles.js +0 -246
- package/utils/local.js +0 -180
- /package/{tests/unit → test}/components/Inspector/ResultPanel.nuxt.test.js +0 -0
- /package/{tests/unit → test}/components/Step.nuxt.test.js +0 -0
|
@@ -1,61 +1,21 @@
|
|
|
1
|
-
// Global imports
|
|
2
|
-
import path from "path"
|
|
3
|
-
|
|
4
|
-
// Third party imports
|
|
5
1
|
import { setActivePinia } from "pinia"
|
|
6
2
|
import { createTestingPinia } from "@pinia/testing"
|
|
7
|
-
import {
|
|
8
|
-
afterAll,
|
|
9
|
-
beforeAll,
|
|
10
|
-
describe,
|
|
11
|
-
test,
|
|
12
|
-
expect,
|
|
13
|
-
expectTypeOf,
|
|
14
|
-
beforeEach,
|
|
15
|
-
vi,
|
|
16
|
-
} from "vitest"
|
|
17
|
-
|
|
18
|
-
import { WebSocket } from "ws"
|
|
19
|
-
|
|
20
|
-
// Local imports
|
|
21
|
-
import { useViewerStore } from "@ogw_f/stores/viewer"
|
|
22
|
-
import { useInfraStore } from "@ogw_f/stores/infra"
|
|
23
|
-
|
|
24
|
-
import { appMode } from "@ogw_f/utils/app_mode"
|
|
25
|
-
import Status from "@ogw_f/utils/status"
|
|
26
|
-
|
|
27
|
-
// Mock navigator.locks API
|
|
28
|
-
const mockLockRequest = vi.fn().mockImplementation(async (name, callback) => {
|
|
29
|
-
return callback({ name })
|
|
30
|
-
})
|
|
31
|
-
|
|
32
|
-
vi.stubGlobal("navigator", {
|
|
33
|
-
...navigator,
|
|
34
|
-
locks: {
|
|
35
|
-
request: mockLockRequest,
|
|
36
|
-
},
|
|
37
|
-
})
|
|
3
|
+
import { describe, test, expect, expectTypeOf, beforeEach } from "vitest"
|
|
38
4
|
|
|
39
|
-
|
|
40
|
-
global.WebSocket = WebSocket
|
|
41
|
-
})
|
|
42
|
-
|
|
43
|
-
afterAll(() => {
|
|
44
|
-
delete global.WebSocket
|
|
45
|
-
})
|
|
46
|
-
|
|
47
|
-
beforeEach(() => {
|
|
5
|
+
describe("Viewer Store", () => {
|
|
48
6
|
const pinia = createTestingPinia({
|
|
49
7
|
stubActions: false,
|
|
50
|
-
createSpy: vi.fn,
|
|
51
8
|
})
|
|
52
9
|
setActivePinia(pinia)
|
|
53
|
-
|
|
10
|
+
const infra_store = use_infra_store()
|
|
11
|
+
const viewer_store = use_viewer_store()
|
|
54
12
|
|
|
55
|
-
|
|
13
|
+
beforeEach(() => {
|
|
14
|
+
infra_store.$reset()
|
|
15
|
+
viewer_store.$reset()
|
|
16
|
+
})
|
|
56
17
|
describe("state", () => {
|
|
57
18
|
test("initial state", () => {
|
|
58
|
-
const viewer_store = useViewerStore()
|
|
59
19
|
expectTypeOf(viewer_store.default_local_port).toBeString()
|
|
60
20
|
expectTypeOf(viewer_store.client).toEqualTypeOf({})
|
|
61
21
|
expectTypeOf(viewer_store.picking_mode).toBeBoolean()
|
|
@@ -71,65 +31,48 @@ describe("Viewer Store", () => {
|
|
|
71
31
|
describe("getters", () => {
|
|
72
32
|
describe("protocol", () => {
|
|
73
33
|
test("test app_mode CLOUD", () => {
|
|
74
|
-
|
|
75
|
-
const viewer_store = useViewerStore()
|
|
76
|
-
infra_store.app_mode = appMode.CLOUD
|
|
34
|
+
infra_store.app_mode = appMode.appMode.CLOUD
|
|
77
35
|
expect(viewer_store.protocol).toBe("wss")
|
|
78
36
|
})
|
|
79
37
|
test("test app_mode BROWSER", () => {
|
|
80
|
-
|
|
81
|
-
const viewer_store = useViewerStore()
|
|
82
|
-
infra_store.app_mode = appMode.BROWSER
|
|
38
|
+
infra_store.app_mode = appMode.appMode.BROWSER
|
|
83
39
|
expect(viewer_store.protocol).toBe("ws")
|
|
84
40
|
})
|
|
85
41
|
test("test app_mode DESKTOP", () => {
|
|
86
|
-
|
|
87
|
-
const viewer_store = useViewerStore()
|
|
88
|
-
infra_store.app_mode = appMode.DESKTOP
|
|
42
|
+
infra_store.app_mode = appMode.appMode.DESKTOP
|
|
89
43
|
expect(viewer_store.protocol).toBe("ws")
|
|
90
44
|
})
|
|
91
45
|
})
|
|
92
46
|
|
|
93
47
|
describe("port", () => {
|
|
94
48
|
test("test app_mode CLOUD", () => {
|
|
95
|
-
|
|
96
|
-
const viewer_store = useViewerStore()
|
|
97
|
-
infra_store.app_mode = appMode.CLOUD
|
|
49
|
+
infra_store.app_mode = appMode.appMode.CLOUD
|
|
98
50
|
expect(viewer_store.port).toBe("443")
|
|
99
51
|
})
|
|
100
52
|
test("test app_mode BROWSER", () => {
|
|
101
|
-
|
|
102
|
-
const viewer_store = useViewerStore()
|
|
103
|
-
infra_store.app_mode = appMode.BROWSER
|
|
53
|
+
infra_store.app_mode = appMode.appMode.BROWSER
|
|
104
54
|
expect(viewer_store.port).toBe(viewer_store.default_local_port)
|
|
105
55
|
})
|
|
106
56
|
test("test app_mode DESKTOP", () => {
|
|
107
|
-
|
|
108
|
-
const viewer_store = useViewerStore()
|
|
109
|
-
infra_store.app_mode = appMode.DESKTOP
|
|
57
|
+
infra_store.app_mode = appMode.appMode.DESKTOP
|
|
110
58
|
expect(viewer_store.port).toBe(viewer_store.default_local_port)
|
|
111
59
|
})
|
|
112
60
|
|
|
113
61
|
test("test override default_local_port", () => {
|
|
114
|
-
|
|
115
|
-
const viewer_store = useViewerStore()
|
|
116
|
-
infra_store.app_mode = appMode.DESKTOP
|
|
62
|
+
infra_store.app_mode = appMode.appMode.DESKTOP
|
|
117
63
|
viewer_store.default_local_port = "8080"
|
|
118
64
|
expect(viewer_store.port).toBe("8080")
|
|
119
65
|
})
|
|
120
66
|
})
|
|
121
67
|
describe("base_url", () => {
|
|
122
68
|
test("test app_mode DESKTOP", () => {
|
|
123
|
-
|
|
124
|
-
infra_store.app_mode = appMode.DESKTOP
|
|
69
|
+
infra_store.app_mode = appMode.appMode.DESKTOP
|
|
125
70
|
infra_store.domain_name = "localhost"
|
|
126
|
-
|
|
71
|
+
expect(viewer_store.base_url).toBe("ws://localhost:1234/ws")
|
|
127
72
|
})
|
|
128
73
|
|
|
129
74
|
test("test app_mode CLOUD", () => {
|
|
130
|
-
|
|
131
|
-
const viewer_store = useViewerStore()
|
|
132
|
-
infra_store.app_mode = appMode.CLOUD
|
|
75
|
+
infra_store.app_mode = appMode.appMode.CLOUD
|
|
133
76
|
infra_store.ID = "123456"
|
|
134
77
|
infra_store.domain_name = "example.com"
|
|
135
78
|
expect(viewer_store.base_url).toBe(
|
|
@@ -138,9 +81,7 @@ describe("Viewer Store", () => {
|
|
|
138
81
|
})
|
|
139
82
|
|
|
140
83
|
test("test app_mode CLOUD, ID empty", () => {
|
|
141
|
-
|
|
142
|
-
const viewer_store = useViewerStore()
|
|
143
|
-
infra_store.app_mode = appMode.CLOUD
|
|
84
|
+
infra_store.app_mode = appMode.appMode.CLOUD
|
|
144
85
|
infra_store.ID = ""
|
|
145
86
|
infra_store.domain_name = "example.com"
|
|
146
87
|
expect(() => viewer_store.base_url).toThrowError(
|
|
@@ -150,53 +91,31 @@ describe("Viewer Store", () => {
|
|
|
150
91
|
})
|
|
151
92
|
describe("is_busy", () => {
|
|
152
93
|
test("test is_busy", () => {
|
|
153
|
-
const viewer_store = useViewerStore()
|
|
154
94
|
viewer_store.request_counter = 1
|
|
155
95
|
expect(viewer_store.is_busy).toBe(true)
|
|
156
96
|
})
|
|
157
97
|
test("test not is_busy", () => {
|
|
158
|
-
const viewer_store = useViewerStore()
|
|
159
98
|
viewer_store.request_counter = 0
|
|
160
99
|
expect(viewer_store.is_busy).toBe(false)
|
|
161
100
|
})
|
|
162
101
|
})
|
|
163
102
|
})
|
|
164
103
|
describe("actions", () => {
|
|
165
|
-
//
|
|
166
|
-
// const infra_store = useInfraStore()
|
|
167
|
-
// const viewer_store = useViewerStore()
|
|
168
|
-
// infra_store.app_mode = appMode.BROWSER
|
|
169
|
-
// const viewer_path = path.join(
|
|
170
|
-
// executable_path(
|
|
171
|
-
// path.join("tests", "integration", "microservices", "viewer"),
|
|
172
|
-
// ),
|
|
173
|
-
// executable_name("opengeodeweb_viewer"),
|
|
174
|
-
// )
|
|
175
|
-
// const viewer_port = await run_viewer(viewer_path, {
|
|
176
|
-
// port: 1234,
|
|
177
|
-
// data_folder_path: "./data",
|
|
178
|
-
// })
|
|
179
|
-
// viewer_store.default_local_port = viewer_port
|
|
180
|
-
// await viewer_store.ws_connect()
|
|
181
|
-
// expect(viewer_store.status).toBe(Status.CONNECTED)
|
|
182
|
-
// }, 10000)
|
|
104
|
+
// MISSING TEST ws_connect()
|
|
183
105
|
describe("toggle_picking_mode", () => {
|
|
184
106
|
test("test true", async () => {
|
|
185
|
-
const viewer_store = useViewerStore()
|
|
186
107
|
await viewer_store.toggle_picking_mode(true)
|
|
187
108
|
expect(viewer_store.picking_mode).toBe(true)
|
|
188
109
|
})
|
|
189
110
|
})
|
|
190
111
|
describe("start_request", () => {
|
|
191
112
|
test("test increment", async () => {
|
|
192
|
-
const viewer_store = useViewerStore()
|
|
193
113
|
await viewer_store.start_request()
|
|
194
114
|
expect(viewer_store.request_counter).toBe(1)
|
|
195
115
|
})
|
|
196
116
|
})
|
|
197
117
|
describe("stop_request", () => {
|
|
198
118
|
test("test decrement", async () => {
|
|
199
|
-
const viewer_store = useViewerStore()
|
|
200
119
|
await viewer_store.stop_request()
|
|
201
120
|
expect(viewer_store.request_counter).toBe(-1)
|
|
202
121
|
})
|
package/vitest.config.js
ADDED
|
Binary file
|
|
Binary file
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
<?xml version="1.0"?>
|
|
2
|
-
<VTKFile type="PolyData" version="1.0" byte_order="LittleEndian" header_type="UInt32" compressor="vtkZLibDataCompressor">
|
|
3
|
-
<PolyData>
|
|
4
|
-
<Piece NumberOfPoints="4" NumberOfLines="4">
|
|
5
|
-
<PointData>
|
|
6
|
-
<DataArray type="Float64" Name="points" format="ascii" NumberOfComponents="3" RangeMin="0.100000001" RangeMax="9.39999962">0.1 0.2 0.3 2.1 9.4 6.7 7.5 5.2 6.3 8.7 1.4 4.7 </DataArray>
|
|
7
|
-
</PointData>
|
|
8
|
-
<Points>
|
|
9
|
-
<DataArray type="Float64" Name="Points" format="ascii" NumberOfComponents="3" RangeMin="0.10000000000000001" RangeMax="9.4000000000000004">0.1 0.2 0.3 2.1 9.4 6.7 7.5 5.2 6.3 8.7 1.4 4.7 </DataArray>
|
|
10
|
-
</Points>
|
|
11
|
-
<CellData>
|
|
12
|
-
<DataArray type="Float64" Name="edges" format="ascii" NumberOfComponents="2" RangeMin="0" RangeMax="3">0 1 0 2 3 2 1 2 </DataArray>
|
|
13
|
-
</CellData>
|
|
14
|
-
<Lines>
|
|
15
|
-
<DataArray type="Int64" Name="connectivity" format="ascii" RangeMin="0" RangeMax="3">0 1 0 2 3 2 1 2 </DataArray>
|
|
16
|
-
<DataArray type="Int64" Name="offsets" format="ascii" RangeMin="0" RangeMax="4">2 4 6 8 </DataArray>
|
|
17
|
-
</Lines>
|
|
18
|
-
</Piece>
|
|
19
|
-
</PolyData>
|
|
20
|
-
</VTKFile>
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
OpenGeodeWeb-Back
|
|
@@ -1,75 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# This file is autogenerated by pip-compile with Python 3.12
|
|
3
|
-
# by the following command:
|
|
4
|
-
#
|
|
5
|
-
# pip-compile requirements.in
|
|
6
|
-
#
|
|
7
|
-
asgiref==3.9.1
|
|
8
|
-
# via
|
|
9
|
-
# flask
|
|
10
|
-
# opengeodeweb-back
|
|
11
|
-
blinker==1.9.0
|
|
12
|
-
# via
|
|
13
|
-
# flask
|
|
14
|
-
# opengeodeweb-back
|
|
15
|
-
click==8.2.1
|
|
16
|
-
# via
|
|
17
|
-
# flask
|
|
18
|
-
# opengeodeweb-back
|
|
19
|
-
fastjsonschema==2.16.2
|
|
20
|
-
# via opengeodeweb-back
|
|
21
|
-
flask[async]==3.0.3
|
|
22
|
-
# via
|
|
23
|
-
# flask-cors
|
|
24
|
-
# opengeodeweb-back
|
|
25
|
-
flask-cors==6.0.1
|
|
26
|
-
# via opengeodeweb-back
|
|
27
|
-
geode-common==33.9.0
|
|
28
|
-
# via
|
|
29
|
-
# geode-viewables
|
|
30
|
-
# opengeodeweb-back
|
|
31
|
-
geode-viewables==3.2.0
|
|
32
|
-
# via opengeodeweb-back
|
|
33
|
-
itsdangerous==2.2.0
|
|
34
|
-
# via
|
|
35
|
-
# flask
|
|
36
|
-
# opengeodeweb-back
|
|
37
|
-
jinja2==3.1.6
|
|
38
|
-
# via
|
|
39
|
-
# flask
|
|
40
|
-
# opengeodeweb-back
|
|
41
|
-
markupsafe==3.0.2
|
|
42
|
-
# via
|
|
43
|
-
# jinja2
|
|
44
|
-
# opengeodeweb-back
|
|
45
|
-
# werkzeug
|
|
46
|
-
opengeode-core==15.24.2
|
|
47
|
-
# via
|
|
48
|
-
# geode-common
|
|
49
|
-
# geode-viewables
|
|
50
|
-
# opengeode-geosciences
|
|
51
|
-
# opengeode-geosciencesio
|
|
52
|
-
# opengeode-inspector
|
|
53
|
-
# opengeode-io
|
|
54
|
-
# opengeodeweb-back
|
|
55
|
-
opengeode-geosciences==9.2.2
|
|
56
|
-
# via
|
|
57
|
-
# geode-viewables
|
|
58
|
-
# opengeode-geosciencesio
|
|
59
|
-
# opengeodeweb-back
|
|
60
|
-
opengeode-geosciencesio==5.7.2
|
|
61
|
-
# via opengeodeweb-back
|
|
62
|
-
opengeode-inspector==6.7.0
|
|
63
|
-
# via opengeodeweb-back
|
|
64
|
-
opengeode-io==7.3.2
|
|
65
|
-
# via
|
|
66
|
-
# geode-viewables
|
|
67
|
-
# opengeode-geosciencesio
|
|
68
|
-
# opengeodeweb-back
|
|
69
|
-
opengeodeweb-back==5.9.1
|
|
70
|
-
# via -r requirements.in
|
|
71
|
-
werkzeug==3.0.3
|
|
72
|
-
# via
|
|
73
|
-
# flask
|
|
74
|
-
# flask-cors
|
|
75
|
-
# opengeodeweb-back
|
|
@@ -1 +0,0 @@
|
|
|
1
|
-
OpenGeodeWeb-Viewer[cpu]
|
|
@@ -1,87 +0,0 @@
|
|
|
1
|
-
#
|
|
2
|
-
# This file is autogenerated by pip-compile with Python 3.12
|
|
3
|
-
# by the following command:
|
|
4
|
-
#
|
|
5
|
-
# pip-compile --extra-index-url=https://wheels.vtk.org --pre requirements.in
|
|
6
|
-
#
|
|
7
|
-
--extra-index-url https://wheels.vtk.org
|
|
8
|
-
|
|
9
|
-
aiohappyeyeballs==2.6.1
|
|
10
|
-
# via
|
|
11
|
-
# aiohttp
|
|
12
|
-
# opengeodeweb-viewer
|
|
13
|
-
aiohttp==3.12.15
|
|
14
|
-
# via
|
|
15
|
-
# opengeodeweb-viewer
|
|
16
|
-
# wslink
|
|
17
|
-
aiosignal==1.4.0
|
|
18
|
-
# via
|
|
19
|
-
# aiohttp
|
|
20
|
-
# opengeodeweb-viewer
|
|
21
|
-
attrs==25.3.0
|
|
22
|
-
# via
|
|
23
|
-
# aiohttp
|
|
24
|
-
# opengeodeweb-viewer
|
|
25
|
-
contourpy==1.3.3
|
|
26
|
-
# via matplotlib
|
|
27
|
-
cycler==0.12.1
|
|
28
|
-
# via matplotlib
|
|
29
|
-
fastjsonschema==2.21.1
|
|
30
|
-
# via opengeodeweb-viewer
|
|
31
|
-
fonttools==4.59.2
|
|
32
|
-
# via matplotlib
|
|
33
|
-
frozenlist==1.7.0
|
|
34
|
-
# via
|
|
35
|
-
# aiohttp
|
|
36
|
-
# aiosignal
|
|
37
|
-
# opengeodeweb-viewer
|
|
38
|
-
idna==3.10
|
|
39
|
-
# via
|
|
40
|
-
# opengeodeweb-viewer
|
|
41
|
-
# yarl
|
|
42
|
-
kiwisolver==1.4.10rc0
|
|
43
|
-
# via matplotlib
|
|
44
|
-
matplotlib==3.10.6
|
|
45
|
-
# via vtk-osmesa
|
|
46
|
-
multidict==6.6.3
|
|
47
|
-
# via
|
|
48
|
-
# aiohttp
|
|
49
|
-
# opengeodeweb-viewer
|
|
50
|
-
# yarl
|
|
51
|
-
numpy==2.3.2
|
|
52
|
-
# via
|
|
53
|
-
# contourpy
|
|
54
|
-
# matplotlib
|
|
55
|
-
opengeodeweb-viewer[cpu]==1.11.0rc3
|
|
56
|
-
# via
|
|
57
|
-
# -r requirements.in
|
|
58
|
-
# opengeodeweb-viewer
|
|
59
|
-
packaging==25.0
|
|
60
|
-
# via matplotlib
|
|
61
|
-
pillow==11.3.0
|
|
62
|
-
# via matplotlib
|
|
63
|
-
propcache==0.3.2
|
|
64
|
-
# via
|
|
65
|
-
# aiohttp
|
|
66
|
-
# opengeodeweb-viewer
|
|
67
|
-
# yarl
|
|
68
|
-
pyparsing==3.2.3
|
|
69
|
-
# via matplotlib
|
|
70
|
-
python-dateutil==2.9.0.post0
|
|
71
|
-
# via matplotlib
|
|
72
|
-
six==1.17.0
|
|
73
|
-
# via python-dateutil
|
|
74
|
-
typing-extensions==4.14.1
|
|
75
|
-
# via
|
|
76
|
-
# aiosignal
|
|
77
|
-
# opengeodeweb-viewer
|
|
78
|
-
vtk-osmesa==9.3.1
|
|
79
|
-
# via opengeodeweb-viewer
|
|
80
|
-
websocket-client==1.8.0
|
|
81
|
-
# via opengeodeweb-viewer
|
|
82
|
-
wslink==1.12.4
|
|
83
|
-
# via opengeodeweb-viewer
|
|
84
|
-
yarl==1.20.1
|
|
85
|
-
# via
|
|
86
|
-
# aiohttp
|
|
87
|
-
# opengeodeweb-viewer
|
|
@@ -1,138 +0,0 @@
|
|
|
1
|
-
import path from "path"
|
|
2
|
-
|
|
3
|
-
import { setActivePinia } from "pinia"
|
|
4
|
-
import { createTestingPinia } from "@pinia/testing"
|
|
5
|
-
|
|
6
|
-
import {
|
|
7
|
-
afterAll,
|
|
8
|
-
afterEach,
|
|
9
|
-
beforeAll,
|
|
10
|
-
beforeEach,
|
|
11
|
-
describe,
|
|
12
|
-
expect,
|
|
13
|
-
test,
|
|
14
|
-
vi,
|
|
15
|
-
} from "vitest"
|
|
16
|
-
|
|
17
|
-
import {
|
|
18
|
-
executable_name,
|
|
19
|
-
executable_path,
|
|
20
|
-
kill_processes,
|
|
21
|
-
run_viewer,
|
|
22
|
-
} from "@ogw_f/utils/local"
|
|
23
|
-
|
|
24
|
-
import Status from "@ogw_f/utils/status"
|
|
25
|
-
|
|
26
|
-
import * as composables from "@ogw_f/composables/viewer_call"
|
|
27
|
-
import { useDataStyleStore } from "@ogw_f/stores/data_style"
|
|
28
|
-
import { useDataBaseStore } from "@ogw_f/stores/data_base"
|
|
29
|
-
import { useViewerStore } from "@ogw_f/stores/viewer"
|
|
30
|
-
import { useInfraStore } from "@ogw_f/stores/infra"
|
|
31
|
-
|
|
32
|
-
import viewer_schemas from "@geode/opengeodeweb-viewer/opengeodeweb_viewer_schemas.json"
|
|
33
|
-
import { WebSocket } from "ws"
|
|
34
|
-
|
|
35
|
-
const mesh_edges_schemas = viewer_schemas.opengeodeweb_viewer.mesh.edges
|
|
36
|
-
|
|
37
|
-
const mockLockRequest = vi.fn().mockImplementation(async (name, callback) => {
|
|
38
|
-
return callback({ name })
|
|
39
|
-
})
|
|
40
|
-
|
|
41
|
-
vi.stubGlobal("navigator", {
|
|
42
|
-
...navigator,
|
|
43
|
-
locks: {
|
|
44
|
-
request: mockLockRequest,
|
|
45
|
-
},
|
|
46
|
-
})
|
|
47
|
-
|
|
48
|
-
beforeAll(() => {
|
|
49
|
-
global.WebSocket = WebSocket
|
|
50
|
-
})
|
|
51
|
-
|
|
52
|
-
afterAll(() => {
|
|
53
|
-
delete global.WebSocket
|
|
54
|
-
})
|
|
55
|
-
|
|
56
|
-
const id = "fake_id"
|
|
57
|
-
const file_name = "edged_curve.vtp"
|
|
58
|
-
const geode_object = "EdgedCurve2D"
|
|
59
|
-
const object_type = "mesh"
|
|
60
|
-
|
|
61
|
-
beforeEach(async () => {
|
|
62
|
-
const pinia = createTestingPinia({
|
|
63
|
-
stubActions: false,
|
|
64
|
-
createSpy: vi.fn,
|
|
65
|
-
})
|
|
66
|
-
setActivePinia(pinia)
|
|
67
|
-
const dataStyleStore = useDataStyleStore()
|
|
68
|
-
const dataBaseStore = useDataBaseStore()
|
|
69
|
-
const viewerStore = useViewerStore()
|
|
70
|
-
const infraStore = useInfraStore()
|
|
71
|
-
infraStore.app_mode = appMode.appMode.BROWSER
|
|
72
|
-
|
|
73
|
-
const viewer_path = path.join(
|
|
74
|
-
executable_path(
|
|
75
|
-
path.join("tests", "integration", "microservices", "viewer"),
|
|
76
|
-
),
|
|
77
|
-
executable_name("opengeodeweb_viewer"),
|
|
78
|
-
)
|
|
79
|
-
const viewer_port = await run_viewer(viewer_path, {
|
|
80
|
-
port: 1234,
|
|
81
|
-
data_folder_path: path.join(__dirname, "..", "..", "..", "data"),
|
|
82
|
-
})
|
|
83
|
-
|
|
84
|
-
viewerStore.default_local_port = viewer_port
|
|
85
|
-
await viewerStore.ws_connect()
|
|
86
|
-
await dataBaseStore.registerObject(id, file_name, object_type)
|
|
87
|
-
await dataStyleStore.addDataStyle(id, geode_object, object_type)
|
|
88
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
89
|
-
})
|
|
90
|
-
|
|
91
|
-
describe("Mesh edges", () => {
|
|
92
|
-
afterEach(async () => {
|
|
93
|
-
await kill_processes()
|
|
94
|
-
})
|
|
95
|
-
|
|
96
|
-
describe("Edges visibility", () => {
|
|
97
|
-
test("test visibility true", async () => {
|
|
98
|
-
const dataStyleStore = useDataStyleStore()
|
|
99
|
-
const viewerStore = useViewerStore()
|
|
100
|
-
await dataStyleStore.setEdgesVisibility(id, true)
|
|
101
|
-
expect(dataStyleStore.edgesVisibility(id)).toBe(true)
|
|
102
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
103
|
-
})
|
|
104
|
-
})
|
|
105
|
-
|
|
106
|
-
describe("Edges active coloring", () => {
|
|
107
|
-
test("test coloring", async () => {
|
|
108
|
-
const dataStyleStore = useDataStyleStore()
|
|
109
|
-
const viewerStore = useViewerStore()
|
|
110
|
-
const coloringTypes = ["color"]
|
|
111
|
-
for (let i = 0; i < coloringTypes.length; i++) {
|
|
112
|
-
dataStyleStore.setEdgesActiveColoring(id, coloringTypes[i])
|
|
113
|
-
expect(dataStyleStore.edgesActiveColoring(id)).toBe(coloringTypes[i])
|
|
114
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
115
|
-
}
|
|
116
|
-
})
|
|
117
|
-
})
|
|
118
|
-
describe("Edges color", () => {
|
|
119
|
-
test("test red", async () => {
|
|
120
|
-
const dataStyleStore = useDataStyleStore()
|
|
121
|
-
const viewerStore = useViewerStore()
|
|
122
|
-
const color = { r: 255, g: 0, b: 0 }
|
|
123
|
-
const spy = vi.spyOn(composables, "viewer_call")
|
|
124
|
-
await dataStyleStore.setEdgesColor(id, color)
|
|
125
|
-
expect(spy).toHaveBeenCalledWith(
|
|
126
|
-
{
|
|
127
|
-
schema: mesh_edges_schemas.color,
|
|
128
|
-
params: { id, color },
|
|
129
|
-
},
|
|
130
|
-
{
|
|
131
|
-
response_function: expect.any(Function),
|
|
132
|
-
},
|
|
133
|
-
)
|
|
134
|
-
expect(dataStyleStore.edgesColor(id)).toStrictEqual(color)
|
|
135
|
-
expect(viewerStore.status).toBe(Status.CONNECTED)
|
|
136
|
-
})
|
|
137
|
-
})
|
|
138
|
-
})
|
package/tests/vitest.config.js
DELETED
|
@@ -1,33 +0,0 @@
|
|
|
1
|
-
import { defineConfig } from "vitest/config"
|
|
2
|
-
import { defineVitestProject } from "@nuxt/test-utils/config"
|
|
3
|
-
|
|
4
|
-
export default defineConfig({
|
|
5
|
-
test: {
|
|
6
|
-
projects: [
|
|
7
|
-
await defineVitestProject({
|
|
8
|
-
test: {
|
|
9
|
-
name: "unit",
|
|
10
|
-
include: ["tests/unit/**/*.test.js"],
|
|
11
|
-
environment: "nuxt",
|
|
12
|
-
server: {
|
|
13
|
-
deps: {
|
|
14
|
-
inline: ["vuetify"],
|
|
15
|
-
},
|
|
16
|
-
},
|
|
17
|
-
},
|
|
18
|
-
}),
|
|
19
|
-
await defineVitestProject({
|
|
20
|
-
test: {
|
|
21
|
-
name: "integration",
|
|
22
|
-
include: ["tests/integration/**/*.test.js"],
|
|
23
|
-
environment: "nuxt",
|
|
24
|
-
server: {
|
|
25
|
-
deps: {
|
|
26
|
-
inline: ["vuetify"],
|
|
27
|
-
},
|
|
28
|
-
},
|
|
29
|
-
},
|
|
30
|
-
}),
|
|
31
|
-
],
|
|
32
|
-
},
|
|
33
|
-
})
|