-
-
Notifications
You must be signed in to change notification settings - Fork 42
/
Copy pathreload_hash.jl
39 lines (38 loc) · 1.35 KB
/
reload_hash.jl
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
using Test
using Dash
using Dash: HandlerState, main_registry, start_reload_poll, enable_dev_tools!
import HTTP
import JSON3
@testset "reload state" begin
rm("assets/test2.png", force = true)
app = dash()
enable_dev_tools!(app, dev_tools_hot_reload_watch_interval = 1.)
app.layout = html_div()
state = HandlerState(app, main_registry())
start_reload_poll(state)
initial_hash = state.reload.hash
sleep(1)
@test length(state.reload.changed_assets) == 0
write("assets/test2.png", "")
sleep(2)
@test state.reload.hash != initial_hash
@test length(state.reload.changed_assets) == 1
@test length(state.reload.changed_assets) == 1
@test state.reload.changed_assets[1].url == "/assets/test2.png"
rm("assets/test2.png", force = true)
end
@testset "reload handler" begin
rm("assets/test2.css", force = true)
app = dash()
enable_dev_tools!(app, dev_tools_hot_reload = true, dev_tools_hot_reload_watch_interval = 1.)
app.layout = html_div()
handler = make_handler(app)
write("assets/test2.css", "")
sleep(2)
response = Dash.HttpHelpers.handle(handler, HTTP.Request("GET", "/_reload-hash"))
data = JSON3.read(response.body)
@test length(data.files) == 1
@test data.files[1].url == "/assets/test2.css"
@test data.files[1].is_css == true
rm("assets/test2.css", force = true)
end