Skip to content

Commit 9dca007

Browse files
wip(tests): fix 2
1 parent 86929bf commit 9dca007

File tree

3 files changed

+172
-57
lines changed

3 files changed

+172
-57
lines changed

stores/viewer.js

Lines changed: 20 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -5,8 +5,7 @@ import schemas from "@geode/opengeodeweb-viewer/schemas.json"
55

66
export const use_viewer_store = defineStore("viewer", {
77
state: () => ({
8-
PROTOCOL: use_infra_store().is_cloud ? "wss" : "ws",
9-
PORT: use_infra_store().is_cloud ? "443" : "1234",
8+
default_local_port: "1234",
109
client: {},
1110
config: null,
1211
is_running: false,
@@ -15,13 +14,29 @@ export const use_viewer_store = defineStore("viewer", {
1514
request_counter: 0,
1615
}),
1716
getters: {
18-
base_url(state) {
17+
protocol() {
18+
if (use_infra_store().is_cloud) {
19+
return "wss"
20+
} else {
21+
return "ws"
22+
}
23+
},
24+
port() {
25+
if (use_infra_store().is_cloud) {
26+
return "443"
27+
} else {
28+
return this.default_local_port
29+
}
30+
},
31+
base_url() {
1932
const infra_store = use_infra_store()
20-
var viewer_url = `${state.PROTOCOL}://${infra_store.domain_name}:${state.PORT}`
33+
var viewer_url = `${this.protocol}://${infra_store.domain_name}:${this.port}`
2134
if (infra_store.is_cloud) {
35+
if (infra_store.ID == "") {
36+
throw new Error("ID must not be empty in cloud mode")
37+
}
2238
viewer_url += `/${infra_store.ID}/viewer`
2339
}
24-
viewer_url += "/ws"
2540
return viewer_url
2641
},
2742
is_busy(state) {

test/stores/Feedback.test.js

Lines changed: 48 additions & 27 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,59 @@
1-
import { setActivePinia, createPinia } from "pinia"
1+
import { setActivePinia } from "pinia"
2+
import { createTestingPinia } from "@pinia/testing"
23
import { use_feedback_store } from "@/stores/feedback"
3-
import { describe, it, expect, beforeEach } from "vitest"
4+
import { describe, test, expect, beforeEach } from "vitest"
45

5-
describe("Feedback store", () => {
6-
beforeEach(() => {
7-
setActivePinia(createPinia())
6+
describe("Feedback Store", () => {
7+
const pinia = createTestingPinia({
8+
stubActions: false,
89
})
10+
setActivePinia(pinia)
11+
const feedback_store = use_feedback_store()
912

10-
it("add_error", () => {
11-
const feedback_store = use_feedback_store()
12-
expect(feedback_store.feedbacks.length).toBe(0)
13-
feedback_store.add_error(500, "/test", "test message", "test description")
14-
expect(feedback_store.feedbacks.length).toBe(1)
13+
beforeEach(() => {
14+
feedback_store.$reset()
1515
})
1616

17-
it("add_success", () => {
18-
const feedback_store = use_feedback_store()
19-
expect(feedback_store.feedbacks.length).toBe(0)
20-
feedback_store.add_success(500, "/test", "test message", "test description")
21-
expect(feedback_store.feedbacks.length).toBe(1)
17+
describe("state", () => {
18+
test("initial state", () => {
19+
expectTypeOf(feedback_store.feedbacks).toEqualTypeOf([])
20+
expectTypeOf(feedback_store.server_error).toBeBoolean()
21+
})
2222
})
23+
describe("actions", () => {
24+
describe("add_error", () => {
25+
test("test add_error", () => {
26+
feedback_store.add_error(
27+
500,
28+
"/test",
29+
"test message",
30+
"test description",
31+
)
32+
expect(feedback_store.feedbacks.length).toBe(1)
33+
expect(feedback_store.feedbacks[0].type).toBe("error")
34+
})
35+
})
2336

24-
it("delete_feedback", () => {
25-
const feedback_store = use_feedback_store()
26-
expect(feedback_store.feedbacks.length).toBe(0)
27-
feedback_store.delete_feedback(0)
28-
expect(feedback_store.feedbacks.length).toBe(0)
29-
})
37+
describe("add_success", () => {
38+
test("test add_success", () => {
39+
feedback_store.add_success("test description")
40+
expect(feedback_store.feedbacks.length).toBe(1)
41+
expect(feedback_store.feedbacks[0].type).toBe("success")
42+
})
43+
})
44+
describe("delete_feedback", () => {
45+
test("test", () => {
46+
feedback_store.delete_feedback(0)
47+
expect(feedback_store.feedbacks.length).toBe(0)
48+
})
49+
})
3050

31-
it("delete_server_error", () => {
32-
const feedback_store = use_feedback_store()
33-
feedback_store.$patch({ server_error: true })
34-
expect(feedback_store.server_error).toBe(true)
35-
feedback_store.delete_server_error()
36-
expect(feedback_store.server_error).toBe(false)
51+
describe("delete_server_error", () => {
52+
test("test", () => {
53+
feedback_store.$patch({ server_error: true })
54+
feedback_store.delete_server_error()
55+
expect(feedback_store.server_error).toBe(false)
56+
})
57+
})
3758
})
3859
})

test/stores/Viewer.nuxt.test.js

Lines changed: 104 additions & 25 deletions
Original file line numberDiff line numberDiff line change
@@ -1,38 +1,117 @@
1-
import { setActivePinia, createPinia } from "pinia"
1+
import { setActivePinia } from "pinia"
2+
import { createTestingPinia } from "@pinia/testing"
23
import { describe, test, expect, beforeEach } from "vitest"
34

45
describe("Viewer Store", () => {
6+
const pinia = createTestingPinia({
7+
stubActions: false,
8+
})
9+
setActivePinia(pinia)
10+
const infra_store = use_infra_store()
11+
const viewer_store = use_viewer_store()
12+
513
beforeEach(() => {
6-
setActivePinia(createPinia())
14+
infra_store.$reset()
15+
viewer_store.$reset()
16+
})
17+
describe("state", () => {
18+
test("initial state", () => {
19+
expectTypeOf(viewer_store.default_local_port).toBeString()
20+
expectTypeOf(viewer_store.client).toEqualTypeOf({})
21+
expectTypeOf(viewer_store.is_running).toBeBoolean()
22+
expectTypeOf(viewer_store.picking_mode).toBeBoolean()
23+
expectTypeOf(viewer_store.picked_point).toEqualTypeOf({
24+
x: null,
25+
y: null,
26+
})
27+
expectTypeOf(viewer_store.picked_point).toBeNumber()
28+
})
729
})
30+
831
describe("getters", () => {
9-
test("base_url", () => {
10-
const viewer_store = use_geode_store()
11-
const infra_store = use_infra_store()
12-
infra_store.$patch({ ID: "123456" })
13-
viewer_store.start_request()
14-
expect(viewer_store.request_counter).toBe(1)
15-
})
16-
test("is_busy", () => {
17-
const viewer_store = use_viewer_store()
18-
viewer_store.start_request()
19-
expect(viewer_store.is_busy).toBe(true)
32+
describe("protocol", () => {
33+
test("test is_cloud true", () => {
34+
infra_store.is_cloud = true
35+
expect(viewer_store.protocol).toBe("wss")
36+
})
37+
38+
test("test is_cloud false", () => {
39+
infra_store.is_cloud = false
40+
expect(viewer_store.protocol).toBe("ws")
41+
})
42+
})
43+
44+
describe("port", () => {
45+
test("test is_cloud true", () => {
46+
infra_store.is_cloud = true
47+
expect(viewer_store.port).toBe("443")
48+
})
49+
test("test is_cloud false", () => {
50+
infra_store.is_cloud = false
51+
expect(viewer_store.port).toBe(viewer_store.default_local_port)
52+
})
53+
54+
test("test override default_local_port", () => {
55+
infra_store.is_cloud = false
56+
viewer_store.default_local_port = "8080"
57+
expect(viewer_store.port).toBe("8080")
58+
})
59+
})
60+
describe("base_url", () => {
61+
test("test is_cloud false", () => {
62+
infra_store.is_cloud = false
63+
infra_store.domain_name = "localhost"
64+
expect(viewer_store.base_url).toBe("ws://localhost:1234")
65+
})
66+
67+
test("test is_cloud true", async () => {
68+
infra_store.is_cloud = true
69+
infra_store.ID = "123456"
70+
infra_store.domain_name = "example.com"
71+
expect(viewer_store.base_url).toBe(
72+
"wss://example.com:443/123456/viewer",
73+
)
74+
})
75+
76+
test("test is_cloud true, ID empty", async () => {
77+
infra_store.is_cloud = true
78+
infra_store.ID = ""
79+
infra_store.domain_name = "example.com"
80+
expect(() => viewer_store.base_url).toThrowError(
81+
"ID must not be empty in cloud mode",
82+
)
83+
})
84+
})
85+
describe("is_busy", () => {
86+
test("test is_busy", () => {
87+
viewer_store.request_counter = 1
88+
expect(viewer_store.is_busy).toBe(true)
89+
})
90+
test("test not is_busy", () => {
91+
viewer_store.request_counter = 0
92+
expect(viewer_store.is_busy).toBe(false)
93+
})
2094
})
2195
})
2296
describe("actions", () => {
2397
// MISSING TEST ws_connect()
24-
test("start_request", () => {
25-
const viewer_store = use_viewer_store()
26-
viewer_store.start_request()
27-
expect(viewer_store.request_counter).toBe(1)
28-
expect(viewer_store.is_busy).toBe(true)
29-
})
30-
31-
test("stop_request", () => {
32-
const viewer_store = use_viewer_store()
33-
viewer_store.stop_request()
34-
expect(viewer_store.request_counter).toBe(-1)
35-
expect(viewer_store.is_busy).toBe(false)
98+
describe("toggle_picking_mode", async () => {
99+
test("test true", async () => {
100+
await viewer_store.toggle_picking_mode(true)
101+
expect(viewer_store.picking_mode).toBe(true)
102+
})
103+
})
104+
describe("start_request", () => {
105+
test("test increment", async () => {
106+
await viewer_store.start_request()
107+
expect(viewer_store.request_counter).toBe(1)
108+
})
109+
})
110+
describe("stop_request", () => {
111+
test("test decrement", async () => {
112+
await viewer_store.stop_request()
113+
expect(viewer_store.request_counter).toBe(-1)
114+
})
36115
})
37116
})
38117
})

0 commit comments

Comments
 (0)