mirror of
https://github.com/AutoMaker-Org/automaker.git
synced 2026-01-31 20:03:37 +00:00
refactor: remove CoursePromoBadge component and related settings
- Deleted the CoursePromoBadge component from the sidebar and its associated logic. - Removed references to the hideMarketingContent setting from the settings view and appearance section. - Cleaned up related tests for marketing content visibility as they are no longer applicable.
This commit is contained in:
@@ -1,184 +0,0 @@
|
||||
/**
|
||||
* Settings Marketing Content Toggle Tests
|
||||
*
|
||||
* Tests for the "Hide marketing content" setting in the Appearance section.
|
||||
*/
|
||||
|
||||
import { test, expect } from "@playwright/test";
|
||||
import * as fs from "fs";
|
||||
|
||||
import {
|
||||
waitForNetworkIdle,
|
||||
createTestGitRepo,
|
||||
cleanupTempDir,
|
||||
createTempDirPath,
|
||||
setupProjectWithPathNoWorktrees,
|
||||
navigateToSettings,
|
||||
} from "./utils";
|
||||
|
||||
// Create unique temp dir for this test run
|
||||
const TEST_TEMP_DIR = createTempDirPath("settings-marketing-tests");
|
||||
|
||||
interface TestRepo {
|
||||
path: string;
|
||||
cleanup: () => Promise<void>;
|
||||
}
|
||||
|
||||
// Configure all tests to run serially
|
||||
test.describe.configure({ mode: "serial" });
|
||||
|
||||
test.describe("Settings Marketing Content Tests", () => {
|
||||
let testRepo: TestRepo;
|
||||
|
||||
test.beforeAll(async () => {
|
||||
// Create test temp directory
|
||||
if (!fs.existsSync(TEST_TEMP_DIR)) {
|
||||
fs.mkdirSync(TEST_TEMP_DIR, { recursive: true });
|
||||
}
|
||||
});
|
||||
|
||||
test.beforeEach(async () => {
|
||||
// Create a fresh test repo for each test
|
||||
testRepo = await createTestGitRepo(TEST_TEMP_DIR);
|
||||
});
|
||||
|
||||
test.afterEach(async () => {
|
||||
// Cleanup test repo after each test
|
||||
if (testRepo) {
|
||||
await testRepo.cleanup();
|
||||
}
|
||||
});
|
||||
|
||||
test.afterAll(async () => {
|
||||
// Cleanup temp directory
|
||||
cleanupTempDir(TEST_TEMP_DIR);
|
||||
});
|
||||
|
||||
test("should show course promo badge by default", async ({ page }) => {
|
||||
// Setup project without worktrees for simpler testing
|
||||
await setupProjectWithPathNoWorktrees(page, testRepo.path);
|
||||
await page.goto("/");
|
||||
await waitForNetworkIdle(page);
|
||||
|
||||
// Wait for sidebar to load
|
||||
await expect(page.locator('[data-testid="sidebar"]')).toBeVisible({
|
||||
timeout: 10000,
|
||||
});
|
||||
|
||||
// Course promo badge should be visible by default
|
||||
const promoBadge = page.locator('[data-testid="course-promo-badge"]');
|
||||
await expect(promoBadge).toBeVisible({ timeout: 5000 });
|
||||
});
|
||||
|
||||
test("should hide course promo badge when setting is enabled", async ({
|
||||
page,
|
||||
}) => {
|
||||
// Setup project
|
||||
await setupProjectWithPathNoWorktrees(page, testRepo.path);
|
||||
await page.goto("/");
|
||||
await waitForNetworkIdle(page);
|
||||
|
||||
// Navigate to settings
|
||||
await navigateToSettings(page);
|
||||
|
||||
// Click on Appearance tab in settings navigation
|
||||
const appearanceTab = page.getByRole("button", { name: /appearance/i });
|
||||
await appearanceTab.click();
|
||||
|
||||
// Find and click the hide marketing content checkbox
|
||||
const hideMarketingCheckbox = page.locator(
|
||||
'[data-testid="hide-marketing-content-checkbox"]'
|
||||
);
|
||||
await expect(hideMarketingCheckbox).toBeVisible({ timeout: 5000 });
|
||||
await hideMarketingCheckbox.click();
|
||||
|
||||
// Navigate back to board to see the sidebar
|
||||
await page.goto("/board");
|
||||
await waitForNetworkIdle(page);
|
||||
|
||||
// Wait for Zustand store to rehydrate from localStorage
|
||||
await page.waitForFunction(() => {
|
||||
const storage = localStorage.getItem('automaker-storage');
|
||||
if (!storage) return false;
|
||||
const parsed = JSON.parse(storage);
|
||||
return parsed.state?.hideMarketingContent === true;
|
||||
});
|
||||
|
||||
// Course promo badge should now be hidden
|
||||
const promoBadge = page.locator('[data-testid="course-promo-badge"]');
|
||||
await expect(promoBadge).not.toBeVisible({ timeout: 5000 });
|
||||
});
|
||||
|
||||
test("should persist hide marketing setting across page reloads", async ({
|
||||
page,
|
||||
}) => {
|
||||
// Setup project
|
||||
await setupProjectWithPathNoWorktrees(page, testRepo.path);
|
||||
await page.goto("/");
|
||||
await waitForNetworkIdle(page);
|
||||
|
||||
// Navigate to settings and enable hide marketing
|
||||
await navigateToSettings(page);
|
||||
|
||||
const appearanceTab = page.getByRole("button", { name: /appearance/i });
|
||||
await appearanceTab.click();
|
||||
|
||||
const hideMarketingCheckbox = page.locator(
|
||||
'[data-testid="hide-marketing-content-checkbox"]'
|
||||
);
|
||||
await hideMarketingCheckbox.click();
|
||||
|
||||
// Reload the page
|
||||
await page.reload();
|
||||
await waitForNetworkIdle(page);
|
||||
|
||||
// Course promo badge should still be hidden after reload
|
||||
const promoBadge = page.locator('[data-testid="course-promo-badge"]');
|
||||
await expect(promoBadge).not.toBeVisible({ timeout: 5000 });
|
||||
});
|
||||
|
||||
test("should show course promo badge again when setting is disabled", async ({
|
||||
page,
|
||||
}) => {
|
||||
// Setup project with hide marketing already enabled via localStorage
|
||||
await page.addInitScript(() => {
|
||||
const state = {
|
||||
state: {
|
||||
hideMarketingContent: true,
|
||||
projects: [],
|
||||
currentProject: null,
|
||||
theme: "dark",
|
||||
sidebarOpen: true,
|
||||
},
|
||||
version: 2,
|
||||
};
|
||||
localStorage.setItem("automaker-storage", JSON.stringify(state));
|
||||
});
|
||||
|
||||
await setupProjectWithPathNoWorktrees(page, testRepo.path);
|
||||
await page.goto("/");
|
||||
await waitForNetworkIdle(page);
|
||||
|
||||
// Verify promo is hidden initially
|
||||
const promoBadge = page.locator('[data-testid="course-promo-badge"]');
|
||||
await expect(promoBadge).not.toBeVisible({ timeout: 5000 });
|
||||
|
||||
// Navigate to settings and disable hide marketing
|
||||
await navigateToSettings(page);
|
||||
|
||||
const appearanceTab = page.getByRole("button", { name: /appearance/i });
|
||||
await appearanceTab.click();
|
||||
|
||||
const hideMarketingCheckbox = page.locator(
|
||||
'[data-testid="hide-marketing-content-checkbox"]'
|
||||
);
|
||||
await hideMarketingCheckbox.click(); // Uncheck
|
||||
|
||||
// Navigate back to board
|
||||
await page.goto("/board");
|
||||
await waitForNetworkIdle(page);
|
||||
|
||||
// Course promo badge should now be visible again
|
||||
await expect(promoBadge).toBeVisible({ timeout: 5000 });
|
||||
});
|
||||
});
|
||||
Reference in New Issue
Block a user