Something went wrong. Try again.
atproto Thingiverse but good
Something went wrong. Try again.
1234567891011121314151617181920212223242526272829import { expect, test } from '@playwright/test';
// Coverage boundary: the publish flow renders only for an authenticated ATProto// session, and a live PDS publish needs real OAuth, which this CI e2e harness// cannot establish. So e2e covers the signed-out callout (no flow); the// signed-in upload-first assembly, draft round-trip, validation, and// promote-on-publish are covered by the Rust unit/integration suites// (src/publish/draft.rs, src/appview/drafts.rs) plus the manual Playwright pass// against `just serve`.
test('signed-out /publish shows the sign-in callout, not the flow', async ({ page }) => { await page.goto('/publish');
await expect(page.getByRole('heading', { name: 'Share your models' })).toBeVisible(); const callout = page.locator('section[aria-label="Sign in"]'); await expect(callout.getByRole('button', { name: 'Sign in' })).toBeVisible();
// The signed-out surface must not expose the hero upload zone or publish action. await expect(page.getByLabel('Upload model files')).toHaveCount(0); await expect(page.getByRole('button', { name: 'Publish', exact: true })).toHaveCount(0);});
test('signed-out publish callout returns the user to /publish after sign-in', async ({ page }) => { await page.goto('/publish');
const returnTo = page.locator('section[aria-label="Sign in"] input[name="return_to"]'); await expect(returnTo).toHaveValue('/publish');});