feat(samples): create publishable headless-search-vite sample (Lit + Vite)#7850
Conversation
|
✅ Snyk checks have passed. No issues have been found so far.
💻 Catch issues earlier using the plugins for VS Code, JetBrains IDEs, Visual Studio, and Eclipse. |
d22ad12 to
7d019ef
Compare
7d019ef to
c9ce0f9
Compare
@coveo/atomic
@coveo/atomic-hosted-page
@coveo/atomic-legacy
@coveo/atomic-react
@coveo/auth
@coveo/bueno
@coveo/create-atomic
@coveo/create-atomic-component
@coveo/create-atomic-component-project
@coveo/create-atomic-result-component
@coveo/create-atomic-rollup-plugin
@coveo/headless
@coveo/headless-react
@coveo/shopify
commit: |
c9ce0f9 to
47b62cd
Compare
47b62cd to
3d86ccb
Compare
907a163 to
753792c
Compare
There was a problem hiding this comment.
Pull request overview
Adds a new vanilla JavaScript + Vite sample under samples/headless/search-vite to demonstrate building a Headless-powered search UI (DOM-driven) with basic controllers and a Playwright smoke test.
Changes:
- Introduces a new Vite-based Headless search sample (HTML/CSS/JS) with facets, sorting, pagination, and query summary.
- Adds Playwright E2E scaffolding (MSW-backed mock API) for a basic “page loads and shows results” smoke test.
- Wires the new sample into the workspace lockfile.
Reviewed changes
Copilot reviewed 10 out of 12 changed files in this pull request and generated 8 comments.
Show a summary per file
| File | Description |
|---|---|
| samples/headless/search-vite/vite.config.js | Vite dev-server configuration for the sample. |
| samples/headless/search-vite/src/style.css | Styling for the sample layout, facets, results, pager, etc. |
| samples/headless/search-vite/src/main.js | Sample app logic using Headless controllers and direct DOM manipulation. |
| samples/headless/search-vite/README.md | Usage instructions and feature list for the new sample. |
| samples/headless/search-vite/public/coveo-logo.svg | Sample asset (logo) used in the page header. |
| samples/headless/search-vite/playwright.config.ts | Playwright config to run E2E against vite preview. |
| samples/headless/search-vite/package.json | Workspace package definition and scripts for the sample. |
| samples/headless/search-vite/index.html | Sample page skeleton and mounting points. |
| samples/headless/search-vite/e2e/smoke.spec.ts | Basic E2E smoke test. |
| samples/headless/search-vite/e2e/fixtures.ts | MSW/MockSearchApi Playwright fixture setup. |
| samples/headless/search-vite/.gitignore | Ignores build/test output for the sample. |
| pnpm-lock.yaml | Adds the new sample workspace importer and its dependencies. |
Files not reviewed (1)
- pnpm-lock.yaml: Generated file
8e52bc3 to
dfaafff
Compare
|
Tip All tests passed and all changes approved!🟢 UI Tests: 458 tests unchanged |
…Vite) A vanilla Vite + Lit @coveo/headless search sample: search box with query suggestions and instant results, facets (incl. a category facet with breadbox support), sort, numbered pager, breadcrumbs, and result list. Published to npm as a @coveo/create-ui scaffolding template via publishConfig.directory; the prepack builder drops test-only tooling from the published copy. Verified with @coveo/platform-mock-api + Playwright smoke tests.
Summary
A vanilla Vite + Lit
@coveo/headlesssearch sample, published to npm as a@coveo/create-uiscaffolding template.What it does
searchuisamplessample org.publishConfig.directory: the sharedprepackbuilder (scripts/build-sample-publish-dir.mjs) emits./publishwith the runnable app and apackage.jsonthat keeps build tooling (vite) but drops test-only devDependencies (incl. the internal@coveo/platform-mock-api) and thee2escript. Sourcepackage.jsonis untouched;./publishis gitignored.Tested
pnpm install --frozen-lockfilepasses; the lockfile change is a minimal, additive search-vite importer (+publishDirectory), no transitive drift.publish/ships the app only (noe2e/),dependencies=@coveo/headless+lit,devDependencies=vite, scriptsdev/build/preview.oxlint/oxfmtclean; deterministic Playwright smoke test with@coveo/platform-mock-api+ MSW.Rebased onto
main(single commit); uses the shared publish builder introduced with the commerce samples.