diff --git a/crates/cli/src/subcommands/server.rs b/crates/cli/src/subcommands/server.rs index 4bec7c8ac7..ea2b135fcc 100644 --- a/crates/cli/src/subcommands/server.rs +++ b/crates/cli/src/subcommands/server.rs @@ -379,6 +379,7 @@ pub async fn exec_edit(mut config: Config, args: &ArgMatches) -> Result<(), anyh } let (old_nick, old_host, old_proto) = config.edit_server(server, new_nick, new_host, new_proto)?; + let server = new_nick.unwrap_or(server); if let (Some(new_nick), Some(old_nick)) = (new_nick, old_nick) { println!("Changing nickname from {} to {}", old_nick, new_nick); diff --git a/smoketests/tests/servers.py b/smoketests/tests/servers.py index a144816f6d..0ac5c68166 100644 --- a/smoketests/tests/servers.py +++ b/smoketests/tests/servers.py @@ -23,3 +23,12 @@ def test_servers(self): out = self.spacetime("server", "fingerprint", "-s", "localhost") self.assertIn("Fingerprint is unchanged for server localhost", out) + + def test_edit_server(self): + """Verify that we can edit server configurations""" + + out = self.spacetime("server", "add", "https://foo.com", "foo", "--no-fingerprint") + out = self.spacetime("server", "edit", "-s", "foo", "--host", "edited-testnet.spacetimedb.com", "--nickname", "edited-testnet", "--no-fingerprint", "--yes") + + servers = self.spacetime("server", "list") + self.assertRegex(servers, re.compile(r"^\s*edited-testnet\.spacetimedb\.com\s+https\s+edited-testnet\s*$", re.M))