馃寠 A GraphQL implementation in Gleam
at v2.1.1 1.3 kB view raw
1/// Snapshot tests for subscription parsing 2import birdie 3import gleam/string 4import gleeunit 5import swell/parser 6 7pub fn main() { 8 gleeunit.main() 9} 10 11// Helper to format AST as string for snapshots 12fn format_ast(doc: parser.Document) -> String { 13 string.inspect(doc) 14} 15 16pub fn parse_simple_anonymous_subscription_test() { 17 let query = "subscription { messageAdded { content author } }" 18 19 let doc = case parser.parse(query) { 20 Ok(d) -> d 21 Error(_) -> panic as "Parse failed" 22 } 23 24 birdie.snap(title: "Simple anonymous subscription", content: format_ast(doc)) 25} 26 27pub fn parse_named_subscription_test() { 28 let query = "subscription OnMessage { messageAdded { id content } }" 29 30 let doc = case parser.parse(query) { 31 Ok(d) -> d 32 Error(_) -> panic as "Parse failed" 33 } 34 35 birdie.snap(title: "Named subscription", content: format_ast(doc)) 36} 37 38pub fn parse_subscription_with_nested_selections_test() { 39 let query = 40 " 41 subscription { 42 postCreated { 43 id 44 title 45 author { 46 id 47 name 48 email 49 } 50 comments { 51 content 52 } 53 } 54 } 55 " 56 57 let doc = case parser.parse(query) { 58 Ok(d) -> d 59 Error(_) -> panic as "Parse failed" 60 } 61 62 birdie.snap( 63 title: "Subscription with nested selections", 64 content: format_ast(doc), 65 ) 66}