import at_record_web/model.{Model, ScanState, blank_scan} import at_record_web/pages/scan_done import gleam/string import lustre/element import support.{logged_in} fn rendered(old: Int, added: Int) -> String { Model( ..logged_in(), scan: ScanState(..blank_scan(), import_old_count: old, import_added: added), ) |> scan_done.view |> element.to_string } pub fn done_page_shows_the_added_count_test() { let html = rendered(4, 3) assert string.contains(html, "3 RECORDS ADDED") } pub fn done_page_renders_old_and_new_totals_test() { let html = rendered(4, 3) assert string.contains(html, ">4<") // new = old + added; the CSS counter reads these custom properties. assert string.contains(html, "--count-from: 4") assert string.contains(html, "--count-to: 7") } pub fn done_page_zero_added_still_renders_test() { let html = rendered(4, 0) assert string.contains(html, "0 RECORDS ADDED") assert string.contains(html, ">4<") } pub fn done_page_offers_view_crate_and_scan_more_test() { let html = rendered(4, 3) assert string.contains(html, "VIEW CRATE") assert string.contains(html, "href=\"/\"") assert string.contains(html, "SCAN MORE") assert string.contains(html, "href=\"/scan\"") }