Skip to content

Commit a827209

Browse files
all tests passing
1 parent 957f2b3 commit a827209

File tree

11 files changed

+219
-120
lines changed

11 files changed

+219
-120
lines changed

internal_stores/data_style_state.js

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,12 @@ import { reactive, computed } from "vue"
33
export default function useDataStyleState() {
44
const styles = reactive({})
55

6-
const objectVisibility = computed(() => (id) => styles[id].visibility)
6+
const objectVisibility = computed(() => (id) => {
7+
if (styles[id]) {
8+
return styles[id].visibility
9+
}
10+
return false
11+
})
712
const selectedObjects = computed(() => {
813
const selection = []
914
for (const [id, value] of Object.entries(styles)) {

internal_stores/mesh/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export default function useMeshStyle() {
3737
)
3838
}
3939

40-
function applyMeshDefaultStyle(id) {
40+
function applyMeshStyle(id) {
4141
const style = dataStyleStore.getStyle(id)
4242
const promise_array = []
4343
for (const [key, value] of Object.entries(style)) {
@@ -65,7 +65,7 @@ export default function useMeshStyle() {
6565
return {
6666
meshVisibility,
6767
setMeshVisibility,
68-
applyMeshDefaultStyle,
68+
applyMeshStyle,
6969
...useMeshPointsStyle(),
7070
...useMeshEdgesStyle(),
7171
...useMeshPolygonsStyle(),

internal_stores/model/index.js

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -132,7 +132,7 @@ export default function useModelStyle() {
132132
}
133133
}
134134

135-
function applyModelDefaultStyle(id) {
135+
function applyModelStyle(id) {
136136
const style = dataStyleStore.getStyle(id)
137137
const promise_array = []
138138
for (const [key, value] of Object.entries(style)) {
@@ -184,7 +184,7 @@ export default function useModelStyle() {
184184
setModelVisibility,
185185
setModelColor,
186186
setModelMeshComponentVisibility,
187-
applyModelDefaultStyle,
187+
applyModelStyle,
188188
setModelMeshComponentsDefaultStyle,
189189
...useModelBlocksStyle(),
190190
...useModelCornersStyle(),

stores/data_style.js

Lines changed: 6 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,10 @@ export const useDataStyleStore = defineStore("dataStyle", () => {
1313
}
1414

1515
function setVisibility(id, visibility) {
16+
console.log(
17+
"dataBaseStore.itemMetaDatas(id)",
18+
dataBaseStore.itemMetaDatas(id),
19+
)
1620
const object_type = dataBaseStore.itemMetaDatas(id).object_type
1721
if (object_type === "mesh") {
1822
return Promise.all([meshStyleStore.setMeshVisibility(id, visibility)])
@@ -25,9 +29,9 @@ export const useDataStyleStore = defineStore("dataStyle", () => {
2529
function applyDefaultStyle(id) {
2630
const { object_type } = dataBaseStore.itemMetaDatas(id)
2731
if (object_type === "mesh") {
28-
return meshStyleStore.applyMeshDefaultStyle(id)
32+
return meshStyleStore.applyMeshStyle(id)
2933
} else if (object_type === "model") {
30-
return modelStyleStore.applyModelDefaultStyle(id)
34+
return modelStyleStore.applyModelStyle(id)
3135
} else {
3236
throw new Error("Unknown object_type: " + object_type)
3337
}

stores/hybrid_viewer.js

Lines changed: 8 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -33,8 +33,8 @@ export const useHybridViewerStore = defineStore("hybridViewer", () => {
3333
imageStyle.transition = "opacity 0.1s ease-in"
3434
imageStyle.zIndex = 1
3535

36-
await viewerstore.ws_connect()
37-
viewStream = viewerstore.client.getImageStream().createViewStream("-1")
36+
await viewerStore.ws_connect()
37+
viewStream = viewerStore.client.getImageStream().createViewStream("-1")
3838
viewStream.onImageReady((e) => {
3939
if (is_moving.value) return
4040
const webGLRenderWindow =
@@ -48,11 +48,15 @@ export const useHybridViewerStore = defineStore("hybridViewer", () => {
4848
}
4949

5050
async function addItem(id) {
51+
if (!genericRenderWindow.value) {
52+
return
53+
}
5154
const value = dataBaseStore.db[id]
55+
console.log("hybridViewerStore.addItem", { value })
5256
const reader = vtkXMLPolyDataReader.newInstance()
5357
const textEncoder = new TextEncoder()
5458
await reader.parseAsArrayBuffer(
55-
textEncoder.encode(value.binary_light_viewable),
59+
textEncoder.encode(value.vtk_js.binary_light_viewable),
5660
)
5761
const polydata = reader.getOutputData(0)
5862
const mapper = vtkMapper.newInstance()
@@ -168,7 +172,7 @@ export const useHybridViewerStore = defineStore("hybridViewer", () => {
168172

169173
async function resize(width, height) {
170174
if (
171-
viewerstore.status !== Status.CONNECTED ||
175+
viewerStore.status !== Status.CONNECTED ||
172176
status.value !== Status.CREATED
173177
) {
174178
return

stores/treeview.js

Lines changed: 2 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -1,7 +1,7 @@
11
export const useTreeviewStore = defineStore("treeview", () => {
22
const dataStyleStore = useDataStyleStore()
3+
const dataBaseStore = useDataBaseStore()
34

4-
/** State **/
55
const items = ref([])
66
const selection = ref([])
77
const components_selection = ref([])
@@ -11,9 +11,8 @@ export const useTreeviewStore = defineStore("treeview", () => {
1111
const isTreeCollection = ref(false)
1212
const selectedTree = ref(null)
1313

14-
/** Functions **/
14+
// /** Functions **/
1515
function addItem(geodeObject, displayed_name, id, object_type) {
16-
dataStyleStore.addDataStyle(id, geodeObject, object_type)
1716
const child = { title: displayed_name, id, object_type }
1817

1918
for (let i = 0; i < items.value.length; i++) {

tests/integration/microservices/back/requirements.txt

Lines changed: 102 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,106 @@
22
# This file is autogenerated by pip-compile with Python 3.12
33
# by the following command:
44
#
5-
# pip-compile --output-file=tests/integration/microservices/back/requirements.txt tests/integration/microservices/back/requirements.in
5+
# pip-compile --output-file=./requirements.txt ./requirements-internal.in ./requirements.in
66
#
7-
7+
asgiref==3.10.0
8+
# via
9+
# flask
10+
# opengeodeweb-back
11+
blinker==1.9.0
12+
# via
13+
# flask
14+
# opengeodeweb-back
15+
click==8.3.0
16+
# via
17+
# flask
18+
# opengeodeweb-back
19+
dataclasses-json==0.6.7
20+
# via opengeodeweb-microservice
21+
fastjsonschema==2.21.1
22+
# via opengeodeweb-microservice
23+
flask[async]==3.1.2
24+
# via
25+
# flask-cors
26+
# opengeodeweb-back
27+
flask-cors==6.0.1
28+
# via opengeodeweb-back
29+
geode-common==33.11.3
30+
# via
31+
# geode-viewables
32+
# opengeodeweb-back
33+
geode-viewables==3.3.2
34+
# via opengeodeweb-back
35+
greenlet==3.2.4
36+
# via
37+
# opengeodeweb-microservice
38+
# sqlalchemy
39+
itsdangerous==2.2.0
40+
# via
41+
# flask
42+
# opengeodeweb-back
43+
jinja2==3.1.6
44+
# via
45+
# flask
46+
# opengeodeweb-back
47+
markupsafe==3.0.3
48+
# via
49+
# flask
50+
# jinja2
51+
# opengeodeweb-back
52+
# werkzeug
53+
marshmallow==3.26.1
54+
# via
55+
# dataclasses-json
56+
# opengeodeweb-microservice
57+
mypy-extensions==1.1.0
58+
# via
59+
# opengeodeweb-microservice
60+
# typing-inspect
61+
opengeode-core==15.29.2
62+
# via
63+
# geode-common
64+
# geode-viewables
65+
# opengeode-geosciences
66+
# opengeode-geosciencesio
67+
# opengeode-inspector
68+
# opengeode-io
69+
# opengeodeweb-back
70+
opengeode-geosciences==9.5.0
71+
# via
72+
# geode-viewables
73+
# opengeode-geosciencesio
74+
# opengeodeweb-back
75+
opengeode-geosciencesio==5.8.1
76+
# via opengeodeweb-back
77+
opengeode-inspector==6.8.2
78+
# via opengeodeweb-back
79+
opengeode-io==7.4.2
80+
# via
81+
# geode-viewables
82+
# opengeode-geosciencesio
83+
# opengeodeweb-back
84+
opengeodeweb-back==5.11.1
85+
# via -r requirements-internal.in
86+
opengeodeweb-microservice==1.0.6
87+
# via opengeodeweb-back
88+
packaging==25.0
89+
# via
90+
# marshmallow
91+
# opengeodeweb-microservice
92+
sqlalchemy==2.0.44
93+
# via opengeodeweb-microservice
94+
typing-extensions==4.15.0
95+
# via
96+
# opengeodeweb-microservice
97+
# sqlalchemy
98+
# typing-inspect
99+
typing-inspect==0.9.0
100+
# via
101+
# dataclasses-json
102+
# opengeodeweb-microservice
103+
werkzeug==3.1.2
104+
# via
105+
# flask
106+
# flask-cors
107+
# opengeodeweb-back

tests/integration/setup.js

Lines changed: 8 additions & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -7,26 +7,20 @@ import { WebSocket } from "ws"
77
import { setActivePinia } from "pinia"
88
import { createTestingPinia } from "@pinia/testing"
99
import { afterAll, beforeAll, expect, vi } from "vitest"
10-
import back_schemas from "@geode/opengeodeweb-back/opengeodeweb_back_schemas.json"
1110

1211
// Local imports
13-
import { useDataStyleStore } from "~/stores/data_style"
14-
import { useDataBaseStore } from "~/stores/data_base"
1512
import { useGeodeStore } from "~/stores/geode"
1613
import { useViewerStore } from "~/stores/viewer"
17-
import { useTreeviewStore } from "~/stores/treeview"
18-
import { useHybridViewerStore } from "~/stores/hybrid_viewer"
1914
import { useInfraStore } from "~/stores/infra"
20-
import { api_fetch } from "~/composables/api_fetch"
2115
import { appMode } from "~/utils/app_mode"
16+
import { importFile } from "~/utils/file_import_workflow"
2217
import Status from "~/utils/status"
2318
import {
2419
executable_name,
2520
executable_path,
2621
run_back,
2722
run_viewer,
2823
} from "~/utils/local"
29-
import { getCurrentFolders, cleanupCreatedFolders } from "./utils.js"
3024

3125
// Local constants
3226
const data_folder = path.join("tests", "integration", "data")
@@ -37,13 +31,10 @@ async function setupIntegrationTests(file_name, geode_object) {
3731
createSpy: vi.fn,
3832
})
3933
setActivePinia(pinia)
40-
const dataStyleStore = useDataStyleStore()
41-
const dataBaseStore = useDataBaseStore()
4234
const geodeStore = useGeodeStore()
4335
const hybridViewerStore = useHybridViewerStore()
44-
const viewerStore = useViewerStore()
45-
const treeviewStore = useTreeviewStore()
4636
const infraStore = useInfraStore()
37+
const viewerStore = useViewerStore()
4738
infraStore.app_mode = appMode.BROWSER
4839

4940
const microservices_path = path.join("tests", "integration", "microservices")
@@ -71,67 +62,15 @@ async function setupIntegrationTests(file_name, geode_object) {
7162

7263
geodeStore.default_local_port = back_port
7364
viewerStore.default_local_port = viewer_port
65+
console.log("after ports")
7466
await viewerStore.ws_connect()
67+
// await hybridViewerStore.initHybridViewer()
68+
console.log("after hybridViewerStore.initHybridViewer")
7569

76-
const { data } = await api_fetch({
77-
schema: back_schemas.opengeodeweb_back.save_viewable_file,
78-
params: {
79-
input_geode_object: geode_object,
80-
filename: file_name,
81-
},
82-
})
83-
84-
console.log("data._value.id", data._value.id)
85-
// console.log("response.status._value", response.status._value)
86-
const id = data._value.id
87-
await dataBaseStore.registerObject(id)
88-
89-
console.log("after dataBaseStore.registerObject")
90-
await dataBaseStore.addItem(data._value.id, {
91-
object_type: data._value.object_type,
92-
geode_object: data._value.geode_object,
93-
native_filename: data._value.native_file_name,
94-
viewable_filename: data._value.viewable_file_name,
95-
displayed_name: data._value.name,
96-
vtk_js: {
97-
binary_light_viewable: data._value.binary_light_viewable,
98-
},
99-
})
100-
console.log("after dataBaseStore.addItem")
101-
await dataStyleStore.addDataStyle(
102-
id,
103-
data._value.geode_object,
104-
data._value.object_type,
105-
)
106-
console.log("after dataStyleStore.addDataStyle")
107-
108-
if (data._value.object_type === "model") {
109-
await Promise.all([
110-
dataBaseStore.fetchMeshComponents(id),
111-
dataBaseStore.fetchUuidToFlatIndexDict(id),
112-
])
113-
console.log("after dataBaseStore.fetchMeshComponents")
114-
115-
console.log("after dataBaseStore.fetchUuidToFlatIndexDict")
116-
}
117-
const applyDefaultStyle = await dataStyleStore.applyDefaultStyle(id)
118-
119-
console.log("after dataStyleStore.applyDefaultStyle", { applyDefaultStyle })
120-
121-
// await treeviewStore.addItem(
122-
// data._value.geode_object,
123-
// data._value.name,
124-
// id,
125-
// data._value.object_type,
126-
// )
127-
// console.log(4, { applyDefaultStyle })
128-
129-
console.log("after treeviewStore.addItem")
130-
// await hybridViewerStore.addItem(id)
131-
// console.log("after hybridViewerStore.addItem")
70+
// await viewerStore.ws_connect()
71+
const id = await importFile(file_name, geode_object)
13272
expect(viewerStore.status).toBe(Status.CONNECTED)
133-
console.log("END OF SETUP")
134-
73+
console.log("end of setupIntegrationTests")
13574
return { id, back_port, viewer_port, project_folder_path }
13675
}
13776

tests/integration/stores/data_style/mesh/index.nuxt.test.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -59,7 +59,7 @@ describe("Mesh", () => {
5959
test("test", async () => {
6060
const dataStyleStore = useDataStyleStore()
6161
const viewerStore = useViewerStore()
62-
await dataStyleStore.applyMeshDefaultStyle(id)
62+
await dataStyleStore.applyMeshStyle(id)
6363
expect(viewerStore.status).toBe(Status.CONNECTED)
6464
})
6565
})

tests/integration/utils.js

Lines changed: 0 additions & 34 deletions
This file was deleted.

0 commit comments

Comments
 (0)