mirror of
https://github.com/Termix-SSH/Termix.git
synced 2026-10-30 07:05:24 +00:00
v26.10.1 (#1599)
* feat: AI translations at release, 7 new languages and regional fallback * fix: proper plural forms for count strings and full translations * fix: plural forms for selected, hidden and active counts * fix: synced plugin updates failing on desktop and server-only plugins shown as stopped * fix: restore rounded corners on app icons and favicon * feat: desktop app auto updates with automatic, ask first or never modes * feat: community and custom plugin registries * feat: plugin guide for AI tools in the SDK with a lint check * fix: keep the terminal WebSocket open past nginx's 60s default (#1588) * chore: update changelog * feat: show plugin download counts only and stop CI builds inflating them * feat: hide installed plugins in the browse tab by default * chore: pin bundled plugins to latest releases * chore: update translations * fix: focusing a saved password field and saving no longer erases it * fix: tell desktop users when their 2.8 data needs 2.9 first * fix: point windows update info at the x64 installer * fix: keep desktop client tunnel sockets alive behind proxies * chore: pin bundled plugins to latest releases * fix: cover client tunnel keepalive in the c2s runtime tests * fix: typing after opening a host no longer goes to the host search * fix: accept tab and = separators in SSH config import (#1598) * chore: update changelog * chore: drop plugin versions from core changelog * chore: update translations * chore: lint, format, and bump version to 26.10.1 --------- Co-authored-by: Darnel Hunter <68697450+innotelinc@users.noreply.github.com> Co-authored-by: Iain <Iain1970@protonmail.com>
This commit is contained in:
174 files changed
+94334
-39995
No files matched your search
@@ -22,8 +22,7 @@ const plugin = {
|
||||
capabilities: [],
|
||||
contributes: {},
|
||||
versions: [],
|
||||
installCount: null,
|
||||
installCountSource: null,
|
||||
downloads: null,
|
||||
};
|
||||
|
||||
vi.mock("@/plugins/use-plugins-manager", () => ({
|
||||
@@ -40,6 +39,7 @@ vi.mock("@/plugins/use-plugins-manager", () => ({
|
||||
confirmConsent: vi.fn(),
|
||||
developerMode: false,
|
||||
signedOnly: false,
|
||||
registries: [],
|
||||
}),
|
||||
}));
|
||||
|
||||
@@ -60,17 +60,32 @@ beforeEach(() => localStorage.clear());
|
||||
afterEach(cleanup);
|
||||
|
||||
describe("PluginsTab", () => {
|
||||
it("tells people community plugins are coming and links the guide", async () => {
|
||||
it("points to the Registries tab and links the submit guide", async () => {
|
||||
await renderTab();
|
||||
fireEvent.click(screen.getByText(en.plugins.manager.tabs.browse));
|
||||
|
||||
expect(
|
||||
screen.getByText(en.plugins.manager.communitySoon, { exact: false }),
|
||||
screen.getByText(en.plugins.manager.registries.browseHint, {
|
||||
exact: false,
|
||||
}),
|
||||
).toBeTruthy();
|
||||
const link = screen.getByText(en.plugins.manager.communitySubmit);
|
||||
expect(link.getAttribute("href")).toBe(docsUrl("communityRegistry"));
|
||||
});
|
||||
|
||||
it("hides installed plugins in Browse until shown", async () => {
|
||||
await renderTab();
|
||||
fireEvent.click(screen.getByText(en.plugins.manager.tabs.browse));
|
||||
|
||||
expect(screen.queryByText("Demo Plugin")).toBeNull();
|
||||
expect(screen.getByText(en.plugins.manager.allInstalled)).toBeTruthy();
|
||||
|
||||
fireEvent.click(screen.getByRole("switch"));
|
||||
|
||||
expect(screen.getByText("Demo Plugin")).toBeTruthy();
|
||||
expect(localStorage.getItem("pluginsTab.browseInstalled")).toBe("show");
|
||||
});
|
||||
|
||||
it("switches to a table and remembers it", async () => {
|
||||
await renderTab();
|
||||
expect(screen.queryByRole("table")).toBeNull();
|
||||
|
||||
Reference in new issue
Block a user