@@ -93,6 +93,8 @@ def test_simulate_command_embeds_validate_unknown_keys():
9393 assert simulated .validation_error
9494 ok , err = validate_embed_payload (payload )
9595 assert not ok
96+ assert err is not None
97+
9698 assert "unknown flag" in err
9799
98100
@@ -106,18 +108,22 @@ def test_validate_embed_flag_style():
106108def test_validate_embed_flag_unknown ():
107109 ok , err = validate_embed_payload ("-foo bar" )
108110 assert not ok
111+ assert err is not None
112+
109113 assert "unknown flag" in err
110114
111115
112116def test_validate_embed_flag_color ():
113117 ok , err = validate_embed_payload ("-color nothex" )
114118 assert not ok
119+ assert err is not None
115120 assert "color must be a 6-hex" in err
116121
117122
118123def test_validate_embed_field_format ():
119124 ok , err = validate_embed_payload ('-f "BadField"' )
120125 assert not ok
126+ assert err is not None
121127 assert "field must be" in err .lower ()
122128
123129
@@ -127,6 +133,26 @@ def test_validate_embed_color_placeholder():
127133 assert err is None
128134
129135
136+ def test_validate_embed_supports_avrae_quote_pairs ():
137+ payload = "-title \u201c Hello World\u201d -desc \u00ab Flavor text\u00bb -f \u300c Name|Value|inline\u300d "
138+ ok , err = validate_embed_payload (payload )
139+ simulated = simulate_command (f"embed { payload } " )
140+
141+ assert ok
142+ assert err is None
143+ assert simulated .embed is not None
144+ assert simulated .embed .title == "Hello World"
145+ assert simulated .embed .description == "Flavor text"
146+ assert simulated .embed .fields and simulated .embed .fields [0 ].name == "Name"
147+
148+
149+ def test_validate_embed_reports_unclosed_quote_pairs ():
150+ ok , err = validate_embed_payload ("-title \u201c Hello" )
151+ assert not ok
152+ assert err is not None
153+ assert "Expected closing quote" in err
154+
155+
130156def test_simulate_command_returns_embed_preview ():
131157 payload = '-title "Hello" -desc "World" -color #ABCDEF -t 30 -thumb http://thumb -image http://image -footer "Footer" -f "Name|Value|inline"'
132158 simulated = simulate_command (f"embed { payload } " )
@@ -156,26 +182,32 @@ def test_simulate_command_with_embed_prefix_and_payload_on_newline():
156182 payload = "-title abc"
157183 simulated = simulate_command (f"embed\n { payload } " )
158184 assert simulated .command_name == "embed"
185+ assert simulated .preview is not None
186+
159187 assert simulated .preview .strip () == payload
160188
161189
162190def test_simulate_command_finds_embed_after_intro_text ():
163191 payload = "-title abc"
164192 simulated = simulate_command (f"# heading\n embed { payload } " )
165193 assert simulated .command_name == "embed"
194+ assert simulated .preview is not None
195+
166196 assert simulated .preview .strip ().endswith (payload )
167197
168198
169199def test_simulate_command_supports_multiple_flag_lines ():
170200 payload = "-title abc\n -title def"
171201 simulated = simulate_command (payload )
172202 assert simulated .command_name == "embed"
203+ assert simulated .preview is not None
173204 assert "-title abc" in simulated .preview
174205 assert "-title def" in simulated .preview
175206
176207
177208def test_simulate_command_strips_alias_header ():
178- alias = " !alias next embed\n -title \ " Done?\" "
209+ alias = ' !alias next embed\n -title "Done?"'
179210 simulated = simulate_command (alias )
180211 assert simulated .command_name == "embed"
212+ assert simulated .preview is not None
181213 assert "Done?" in simulated .preview
0 commit comments