test: replace the Go compatibility fixtures with native round-trip tests

The Go-generated link.db, profiles.link and rec1.cast fixtures and the
tests that read them are removed. Their coverage is kept by tests on
data this build writes: a fresh database round-trips SSH profiles (env
vars, login scripts, forwards), serial profiles, IRC room state, known
hosts, snippets and preferences, and encrypted exports round-trip and
reject a wrong password. The import dialog no longer offers .link files
and the docs stop mentioning them.
This commit is contained in:
Andy Dixon
2026-10-12 10:10:08 +01:00
parent 9ebfe57301
commit 4bd12bfb03
13 changed files with 69 additions and 74 deletions
+1 -1
View File
@@ -864,7 +864,7 @@ When exporting profiles, encrypted export (a `.nexus` file) protects the file wi
"## Exporting Profiles
Use **Export (Encrypted)** from the sidebar menu or command palette. Choose which profiles to include and set a password to encrypt the file. Exported files use the `.nexus` extension. Plain **JSON** export is also available, optionally including secrets.
## Importing Profiles
Use **Import (Encrypted)**, select a `.nexus` file (older `.link` exports from Alchementary Link work too) and enter the password used when exporting. Choose whether existing profiles are skipped, overwritten or duplicated. Imported profiles appear in your sidebar immediately.
Use **Import (Encrypted)**, select a `.nexus` file and enter the password used when exporting. Choose whether existing profiles are skipped, overwritten or duplicated. Imported profiles appear in your sidebar immediately.
## Importing from OpenSSH
If you have an existing `~/.ssh/config` file, go to **Settings → About** and click **Import ~/.ssh/config**. Nexus Terminal creates profiles from your SSH Host blocks, including hostnames, usernames, ports, identity files, and jump hosts.",
),
+2 -2
View File
@@ -1,4 +1,4 @@
//! Profile export/import: encrypted `.nexus` (also reads `.link`) and plain JSON.
//! Profile export/import: encrypted `.nexus` and plain JSON.
use crate::settings::{Job, poll};
use crate::state::{Request, Shared};
@@ -54,7 +54,7 @@ impl Transfer {
pub fn import_encrypted(&mut self) {
if let Some(path) =
rfd::FileDialog::new().set_title("Import Profiles").add_filter("Nexus Export", &[EXTENSION, "link"]).add_filter("All files", &["*"]).pick_file()
rfd::FileDialog::new().set_title("Import Profiles").add_filter("Nexus Export", &[EXTENSION]).add_filter("All files", &["*"]).pick_file()
{
self.mode = Some(Mode::Import { path, pw: String::new(), strategy: "skip", status: String::new() });
}