mirror of
https://github.com/hanzoai/market.git
synced 2026-11-03 01:29:00 +00:00
- Repo transferred hanzobot/hub → hanzoai/market (matches owned hanzo.market domain) - npm package: bothub → @hanzoai/market, packages/bothub → packages/market - bothub-schema → @hanzoai/market-schema - CLI binary: bothub → market - Brand: Bot Hub → Hanzo Market across ~95 user-facing surfaces (README, docs, k8s, Dockerfile, public/manifest.json, OG image, CLI banner, site config, theme) - Brand-neutral white-label: src/brand/ owns BrandConfig + BrandTheme + loader, public/brands/<id>.json presets for hanzo, zoo, lux, pars, liquidity, generic - BRAND_ID env at build picks default; ConfigMap-mounted brand.json overrides at runtime - Legacy paths retained for compat: ~/.bothub, .bothubignore, /.well-known/bothub.json, bothub-theme localStorage key, LEGACY_HOSTS for hub.hanzo.bot/clawhub.ai - Fixed broken sed-replace artifacts in packages/market/src/cli/botConfig.test.ts - Drops Clawd/OpenClaw dead brand surface, keeps Clawdis* schema types and clawd skill directory paths (backward compat for installed bot products)
50 lines
1.8 KiB
TypeScript
50 lines
1.8 KiB
TypeScript
import { expect, test } from '@playwright/test'
|
|
|
|
const navLabels = ['Skills', 'Upload', 'Import', 'Search']
|
|
|
|
test('skills loads without error', async ({ page }) => {
|
|
await page.goto('/skills', { waitUntil: 'domcontentloaded' })
|
|
await expect(page.locator('text=Something went wrong!')).toHaveCount(0)
|
|
await expect(page.locator('h1', { hasText: 'Skills' })).toBeVisible()
|
|
})
|
|
|
|
test('personas loads without error', async ({ page }) => {
|
|
await page.goto('/personas', { waitUntil: 'domcontentloaded' })
|
|
await expect(page.locator('text=Something went wrong!')).toHaveCount(0)
|
|
await expect(page.locator('h1', { hasText: 'Personas' })).toBeVisible()
|
|
})
|
|
|
|
test('header menu routes render', async ({ page }) => {
|
|
await page.goto('/', { waitUntil: 'domcontentloaded' })
|
|
|
|
for (const label of navLabels) {
|
|
const link = page.getByRole('link', { name: label }).first()
|
|
await expect(link).toBeVisible()
|
|
await link.click()
|
|
|
|
if (label === 'Skills') {
|
|
await expect(page).toHaveURL(/\/skills/)
|
|
await expect(page.locator('h1', { hasText: 'Skills' })).toBeVisible()
|
|
}
|
|
|
|
if (label === 'Upload') {
|
|
await expect(page).toHaveURL(/\/upload/)
|
|
const heading = page.locator('h1.section-title', { hasText: /^Publish a /i })
|
|
const signInCard = page.locator('text=Sign in to upload')
|
|
await expect(heading.or(signInCard)).toBeVisible()
|
|
}
|
|
|
|
if (label === 'Import') {
|
|
await expect(page).toHaveURL(/\/import/)
|
|
const heading = page.getByRole('heading', { name: 'Import from GitHub' })
|
|
const signInCard = page.locator('text=Sign in to import and publish skills.')
|
|
await expect(heading.or(signInCard)).toBeVisible()
|
|
}
|
|
|
|
if (label === 'Search') {
|
|
await expect(page).toHaveURL(/\/?(\?|$)/)
|
|
await expect(page.locator('h1', { hasText: 'Hanzo Market' })).toBeVisible()
|
|
}
|
|
}
|
|
})
|