Skip to content

Commit 1cf5648

Browse files
test liveSocket.owner with rootViewSelector
1 parent 04ed4eb commit 1cf5648

1 file changed

Lines changed: 23 additions & 4 deletions

File tree

assets/test/live_socket_test.js

Lines changed: 23 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,22 @@ import LiveSocket from "phoenix_live_view/live_socket"
33

44
let container = (num) => global.document.getElementById(`container${num}`)
55

6-
let prepareLiveViewDOM = (document) => {
6+
let createRootViewDiv = (containerNum, cssClass) => {
77
const div = document.createElement("div")
8-
div.setAttribute("data-phx-session", "abc123")
9-
div.setAttribute("data-phx-root-id", "container1")
10-
div.setAttribute("id", "container1")
8+
div.setAttribute("data-phx-session", `abc-${containerNum}`)
9+
div.setAttribute("data-phx-root-id", `container${containerNum}`)
10+
div.setAttribute("id", `container${containerNum}`)
11+
if(cssClass) div.classList.add(cssClass);
1112
div.innerHTML = `
1213
<label for="plus">Plus</label>
1314
<input id="plus" value="1" />
1415
<button phx-click="inc_temperature">Inc Temperature</button>
1516
`
17+
return div
18+
}
19+
20+
let prepareLiveViewDOM = (document) => {
21+
const div = createRootViewDiv(1, "main")
1622
const button = div.querySelector("button")
1723
const input = div.querySelector("input")
1824
button.addEventListener("click", () => {
@@ -156,6 +162,19 @@ describe("LiveSocket", () => {
156162
liveSocket.owner(btn, (view) => expect(view.id).toBe(_view.id))
157163
})
158164

165+
test("owner with rootViewSelector option", async () => {
166+
let liveSocket = new LiveSocket("/live", Socket, {rootViewSelector: ".main"})
167+
liveSocket.connect()
168+
169+
let _view = liveSocket.getViewByEl(container(1))
170+
171+
let btn = document.querySelector(".main button")
172+
liveSocket.owner(btn, (view) => expect(view.id).toBe(_view.id))
173+
174+
let btnExtra = document.querySelector(".extra button")
175+
liveSocket.owner(btnExtra, (view) => expect(view).toBe(null))
176+
})
177+
159178
test("getActiveElement default before LiveSocket activeElement is set", async () => {
160179
let liveSocket = new LiveSocket("/live", Socket)
161180

0 commit comments

Comments
 (0)