Something went wrong. Try again.
[READ-ONLY] Mirror of https://github.com/improsocial/impro
An extensible Bluesky client for web impro.social
Something went wrong. Try again.
JavaScript
1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556import { test, expect } from "../../base.js";import { login } from "../../helpers.js";import { MockServer } from "../../mockServer.js";
const REMOTE_ID = "remote-themes";const REGISTRY_ENTRY = { id: REMOTE_ID, name: "Remote Themes", author: "alice", repo: "alice/remote-themes", description: "Adds extra themes",};
test.describe("Remote plugin install flow", () => { test("installing from community view enables the plugin on the plugins view", async ({ page, }) => { const mockServer = new MockServer(); mockServer.registryEntries = [REGISTRY_ENTRY]; await mockServer.setup(page); await login(page);
// Open the plugin's detail page from the community view, then install. await page.goto("/plugins/community"); const community = page.locator("#community-plugins-view"); const installItem = community.locator(".plugin-list-item", { hasText: "Remote Themes", }); await expect(installItem).toBeVisible({ timeout: 10000 }); await installItem.locator(".plugin-list-item-link").click();
const listing = page.locator("#community-plugin-listing-view"); const installButton = listing.locator( '[data-testid="plugin-listing-install-button"]', ); await expect(installButton).toHaveText("Install", { timeout: 10000 }); const putPrefs = page.waitForResponse((res) => res.url().includes("app.bsky.actor.putPreferences"), ); await installButton.click(); await putPrefs;
// Navigate back to the plugins list; the installed plugin should appear. await page.goto("/plugins/installed"); const plugins = page.locator("#installed-plugins-view"); const remoteItem = plugins.locator(".plugin-list-item", { hasText: "Remote Themes", }); await expect(remoteItem).toBeVisible({ timeout: 10000 }); await expect(remoteItem.locator(".plugin-toggle")).toHaveAttribute( "checked", "", ); });});