Native Lightspeed LiveView app on Mist (Gleam)
0

Configure Feed

Select the types of activity you want to include in your feed.

star / test / star_test.gleam
2.2 kB 90 lines
1import gleam/string 2import gleeunit 3import lightspeed/testing/liveview 4import star/live 5import star/ws 6 7pub fn main() -> Nil { 8 gleeunit.main() 9} 10 11pub fn mount_renders_counter_test() { 12 let session = 13 liveview.mount_disconnected( 14 live.definition(), 15 "star-root", 16 "/", 17 live.Assigns, 18 live.target, 19 ) 20 let html = liveview.html(session) 21 assert string.contains(html, "Counter") 22 assert string.contains(html, "data-ls-click=\"inc\"") 23} 24 25pub fn inc_event_updates_count_test() { 26 let session = 27 liveview.mount_connected( 28 live.definition(), 29 "star-root", 30 "/", 31 live.Assigns, 32 live.target, 33 ) 34 let #(session, routed) = liveview.render_event(session, "inc", "") 35 assert routed == Ok(live.Inc) 36 let html = liveview.html(session) 37 assert string.contains(html, ">1</div>") 38} 39 40pub fn greet_event_test() { 41 let session = 42 liveview.mount_connected( 43 live.definition(), 44 "star-root", 45 "/", 46 live.Assigns, 47 live.target, 48 ) 49 let #(session, routed) = 50 liveview.render_event(session, "greet", "name=Nandi") 51 assert routed == Ok(live.Greet("Nandi")) 52 let html = liveview.html(session) 53 assert string.contains(html, "Welcome back, architect.") 54 let _ = session 55} 56 57pub fn save_and_delete_note_test() { 58 let session = 59 liveview.mount_connected( 60 live.definition(), 61 "star-root", 62 "/", 63 live.Assigns, 64 live.target, 65 ) 66 let #(session, routed) = 67 liveview.render_event( 68 session, 69 "save_note", 70 "notetitle=Hello&notebody=World", 71 ) 72 assert routed == Ok(live.SaveNote("Hello", "World")) 73 assert string.contains(liveview.html(session), "Hello") 74 75 let #(session, routed) = 76 liveview.render_event(session, "delete_note", "id=1") 77 assert routed == Ok(live.DeleteNote(1)) 78 // seeded note 1 title 79 assert !string.contains(liveview.html(session), "First note") 80} 81 82pub fn ws_protocol_inc_test() { 83 let #(session, hello) = ws.mount("/") 84 assert hello != [] 85 86 let #(session, frames) = ws.handle_frame(session, "event|1|inc|") 87 assert frames != [] 88 let model = ws.model(session) 89 assert model.count == 1 90}