+@pytest.mark.parametrize("config_param", url_configs)
+def test_url_config_without_schema_block_status(harness: Harness, config_param):
+ _set_mandatory_config(harness)
+ _add_relations(harness)
+ harness.update_config({config_param: "foo.com"})
+ assert isinstance(harness.charm.unit.status, BlockedStatus)
+ assert (
+ f"Invalid value for {config_param} config: 'foo.com'" in harness.charm.unit.status.message
+ )
+
+
+@pytest.mark.parametrize("config_param", url_configs)
+def test_url_config_with_port_without_schema_block_status(harness: Harness, config_param):
+ _set_mandatory_config(harness)
+ _add_relations(harness)
+ harness.update_config({config_param: "foo.com:9090"})
+ assert isinstance(harness.charm.unit.status, BlockedStatus)
+ assert (
+ f"Invalid value for {config_param} config: 'foo.com:9090'"
+ in harness.charm.unit.status.message
+ )
+
+
+@pytest.mark.parametrize("config_param", url_configs)
+def test_url_config_without_port_is_valid(harness: Harness, config_param):
+ _set_mandatory_config(harness)
+ _add_relations(harness)
+ harness.update_config({config_param: "http://foo"})
+ assert harness.charm.unit.status == ActiveStatus()
+
+
+@pytest.mark.parametrize("config_param", url_configs)
+def test_url_config_with_port_is_valid(harness: Harness, config_param):
+ _set_mandatory_config(harness)
+ _add_relations(harness)
+ harness.update_config({config_param: "http://foo:90"})
+ assert harness.charm.unit.status == ActiveStatus()
+
+