@@ -51,6 +51,71 @@ def test_form_submissions(self):
5151 result = runner .invoke (cli , ["forms" , "submissions" , "1" ])
5252 assert result .exit_code == 0
5353
54+ @respx .mock
55+ def test_create_form (self ):
56+ respx .post ("https://mautic.test/api/forms/new" ).mock (
57+ return_value = httpx .Response (200 , json = {
58+ "form" : {"id" : 5 , "name" : "New Form" },
59+ })
60+ )
61+ runner = CliRunner (env = MOCK_ENV )
62+ result = runner .invoke (cli , [
63+ "forms" , "create" ,
64+ "--json" , '{"name": "New Form", "formType": "standalone", "postAction": "message", "postActionProperty": "Thanks!"}'
65+ ])
66+ assert result .exit_code == 0
67+ data = json .loads (result .output )
68+ assert data ["form" ]["name" ] == "New Form"
69+
70+ @respx .mock
71+ def test_edit_form (self ):
72+ respx .patch ("https://mautic.test/api/forms/5/edit" ).mock (
73+ return_value = httpx .Response (200 , json = {
74+ "form" : {"id" : 5 , "name" : "Updated Form" },
75+ })
76+ )
77+ runner = CliRunner (env = MOCK_ENV )
78+ result = runner .invoke (cli , [
79+ "forms" , "edit" , "5" ,
80+ "--json" , '{"name": "Updated Form"}'
81+ ])
82+ assert result .exit_code == 0
83+ data = json .loads (result .output )
84+ assert data ["form" ]["name" ] == "Updated Form"
85+
86+ def test_embed_default (self ):
87+ runner = CliRunner (env = MOCK_ENV )
88+ result = runner .invoke (cli , ["forms" , "embed" , "4" ])
89+ assert result .exit_code == 0
90+ assert "Via Javascript (recommended)" in result .output
91+ assert "Via iframe" in result .output
92+ assert "generate.js?id=4" in result .output
93+ assert 'src="//mautic.test/form/4"' in result .output
94+
95+ def test_embed_js (self ):
96+ runner = CliRunner (env = MOCK_ENV )
97+ result = runner .invoke (cli , ["forms" , "embed" , "4" , "--type" , "js" ])
98+ assert result .exit_code == 0
99+ assert result .output .strip () == '<script type="text/javascript" src="//mautic.test/form/generate.js?id=4"></script>'
100+
101+ def test_embed_iframe (self ):
102+ runner = CliRunner (env = MOCK_ENV )
103+ result = runner .invoke (cli , ["forms" , "embed" , "4" , "--type" , "iframe" ])
104+ assert result .exit_code == 0
105+ assert 'src="//mautic.test/form/4"' in result .output
106+
107+ @respx .mock
108+ def test_embed_html (self ):
109+ respx .get ("https://mautic.test/api/forms/4" ).mock (
110+ return_value = httpx .Response (200 , json = {
111+ "form" : {"id" : 4 , "name" : "Test" , "cachedHtml" : "<div>form html</div>" },
112+ })
113+ )
114+ runner = CliRunner (env = MOCK_ENV )
115+ result = runner .invoke (cli , ["forms" , "embed" , "4" , "--type" , "html" ])
116+ assert result .exit_code == 0
117+ assert result .output .strip () == "<div>form html</div>"
118+
54119 @respx .mock
55120 def test_delete_form (self ):
56121 respx .delete ("https://mautic.test/api/forms/1/delete" ).mock (
0 commit comments