@@ -5,18 +5,19 @@ import starlightSidebarTopics from 'starlight-sidebar-topics';
55import starlightImageZoom from 'starlight-image-zoom' ;
66import rehypeAstroRelativeMarkdownLinks from "astro-rehype-relative-markdown-links" ;
77import starlightScrollToTop from 'starlight-scroll-to-top' ;
8- import starlightBlog from 'starlight-blog' ;
98
109const options = {
1110 collectionBase : false ,
1211} ;
1312
1413export default defineConfig ( {
14+ site : 'https://codecept.io' ,
1515 integrations : [
1616 starlight ( {
1717 expressiveCode : {
1818 themes : [ 'github-dark' , 'dracula' ] ,
1919 } ,
20+ disable404Route : true ,
2021 title : '' ,
2122 favicon : '/favicon.svg' ,
2223 social : [
@@ -26,6 +27,7 @@ export default defineConfig({
2627 Head : "./src/components/Head.astro" ,
2728 PageFrame : "./src/components/PageFrame.astro" ,
2829 PageTitle : './src/components/PageTitle.astro' ,
30+ PageSidebar : './src/components/PageSidebar.astro' ,
2931 Footer : './src/components/Footer.astro' ,
3032 SiteTitle : './src/components/SiteTitle.astro' ,
3133 Search : './src/components/Search.astro' ,
@@ -37,22 +39,21 @@ export default defineConfig({
3739 ] ,
3840 plugins : [
3941 starlightImageZoom ( ) ,
40- starlightBlog ( ) ,
4142 starlightSidebarTopics ( [
4243 {
44+ id : 'documentation' ,
4345 label : 'Documentation' ,
4446 link : 'quickstart' ,
4547 items : [
4648 {
4749 label : 'Web Testing' ,
4850 items : [
49- { label : 'Getting Started' , link : 'basics' } ,
50- { label : 'CodeceptUI' , link : 'ui' } ,
51+ { label : 'Web Basics' , link : 'basics' } ,
5152 { label : 'Testing with Playwright' , link : 'playwright' } ,
5253 { label : 'Testing with WebDriver' , link : 'webdriver' } ,
5354 { label : 'Testing with Puppeteer' , link : 'puppeteer' } ,
54- { label : 'API Testing' , link : 'api ' } ,
55- { label : 'Testing with TestCafe ' , link : 'testcafe ' } ,
55+ { label : 'Testing React Applications ' , link : 'react ' } ,
56+ { label : 'Testing Vue Apps ' , link : 'vue ' } ,
5657 ] ,
5758 } ,
5859 {
@@ -66,48 +67,75 @@ export default defineConfig({
6667 label : 'Organizing Tests' ,
6768 items : [
6869 { label : 'Page Objects' , link : 'pageobjects' } ,
69- { label : 'TypeScript' , link : 'typescript' } ,
7070 { label : 'Data Management' , link : 'data' } ,
7171 { label : 'Behavior Driven Development' , link : 'bdd' } ,
7272 { label : 'Locators' , link : 'locators' } ,
73+ { label : 'Shadow DOM' , link : 'shadow' } ,
7374 { label : 'Translation' , link : 'translation' } ,
74- { label : 'Custom Helpers' , link : 'custom-helpers' } ,
7575 { label : 'Best Practices' , link : 'best' } ,
7676 ] ,
7777 } ,
78+ {
79+ label : 'API Reference' ,
80+ items : [
81+ { label : 'Web API (Unified)' , link : 'web-api' } ,
82+ { label : 'Mobile API (Unified)' , link : 'mobile-api' } ,
83+ { label : 'API Testing' , link : 'api' } ,
84+ { label : 'Commands' , link : 'commands' } ,
85+ { label : 'Configuration' , link : 'configuration' } ,
86+ { label : 'Plugins' , link : 'plugins' } ,
87+ { label : 'Effects' , link : 'effects' } ,
88+ { label : 'Element Access (els)' , link : 'els' } ,
89+ { label : 'WebElement API' , link : 'web-element' } ,
90+ ] ,
91+ } ,
7892 {
7993 label : 'Advanced Usage' ,
8094 items : [
8195 { label : 'Advanced Usage' , link : 'advanced' } ,
96+ { label : 'TypeScript' , link : 'typescript' } ,
97+ { label : 'ESM Migration' , link : 'esm-migration' } ,
98+ { label : 'CodeceptUI' , link : 'ui' } ,
8299 { label : 'Bootstrap' , link : 'bootstrap' } ,
83100 { label : 'Reporters' , link : 'reports' } ,
84- { label : 'Continuous Integration ' , link : 'continuous-integration ' } ,
101+ { label : 'Docker ' , link : 'docker ' } ,
85102 { label : 'Parallel Execution' , link : 'parallel' } ,
103+ { label : 'Retry Mechanisms' , link : 'retry' } ,
86104 { label : 'Visual Testing' , link : 'visual' } ,
87105 { label : 'Email Testing' , link : 'email' } ,
88106 { label : 'Secrets' , link : 'secrets' } ,
89107 { label : 'Extending' , link : 'hooks' } ,
90108 { label : 'Concepts' , link : 'internal-api' } ,
91- { label : 'Testing React Applications' , link : 'react' } ,
92109 { label : 'Testing with AI' , link : 'ai' } ,
110+ { label : 'MCP Server' , link : 'mcp' } ,
93111 { label : 'Self-Healing Tests' , link : 'heal' } ,
94- { label : 'Testing with Protractor' , link : 'angular' } ,
95- { label : 'Testing Vue Apps' , link : 'vue' } ,
112+ ] ,
113+ } ,
114+ {
115+ label : 'Resources' ,
116+ items : [
117+ { label : 'Tutorial' , link : 'tutorial' } ,
118+ { label : 'Examples' , link : 'examples' } ,
119+ { label : 'Videos' , link : 'videos' } ,
120+ { label : 'Books & Posts' , link : 'books' } ,
121+ { label : 'Community Helpers' , link : 'helpers/community-helpers' } ,
122+ { label : 'Changelog' , link : 'changelog' } ,
96123 ] ,
97124 } ,
98125 ] ,
99126 } ,
100127
101128 {
129+ id : 'helpers' ,
102130 label : 'Helpers' ,
103131 link : '/helpers/playwright/' ,
104132 items : [
105133 {
106134 label : 'Web Testing' ,
107135 items : [
136+ { label : 'Playwright' , link : 'helpers/playwright' } ,
108137 { label : 'WebDriver' , link : 'helpers/web-driver' } ,
109138 { label : 'Puppeteer' , link : 'helpers/puppeteer' } ,
110- { label : 'TestCafe' , link : 'helpers/test-cafe' } ,
111139 ] ,
112140 } ,
113141 {
@@ -125,37 +153,40 @@ export default defineConfig({
125153 { label : 'GraphQL' , link : 'helpers/graph-ql' } ,
126154 { label : 'GraphQLDataFactory' , link : 'helpers/graph-ql-data-factory' } ,
127155 { label : 'JSONResponse' , link : 'helpers/json-response' } ,
128- { label : 'MockRequest' , link : 'helpers/mock-request' } ,
129156 ] ,
130157 } ,
131158 {
132159 label : 'Other Helpers' ,
133160 items : [
134161 { label : 'OpenAI' , link : 'helpers/open-ai' } ,
162+ { label : 'AI' , link : 'helpers/ai' } ,
135163 { label : 'FileSystem' , link : 'helpers/file-system' } ,
136164 { label : 'Expect' , link : 'helpers/expect' } ,
137165 { label : 'SoftExpectHelper' , link : 'helpers/soft-expect-helper' } ,
166+ { label : 'MockRequest' , link : 'helpers/mock-request' } ,
138167 { label : 'MockServer' , link : 'helpers/mock-server' } ,
139- { label : 'Community Helpers' , link : 'community-helpers' } ,
168+ { label : 'Polly' , link : 'helpers/polly' } ,
169+ { label : 'Mochawesome' , link : 'helpers/mochawesome' } ,
170+ { label : 'Custom Helpers' , link : 'custom-helpers' } ,
140171 ] ,
141172 } ,
142173 ]
143174 } ,
144175 {
145- label : 'Wiki' ,
146- link : '/wiki/home/' ,
176+ id : 'blog' ,
177+ label : 'Blog' ,
178+ link : '/blog/my-first-blog-post/' ,
147179 items : [
148- { label : 'Wiki ' , autogenerate : { directory : 'wiki /' } } ,
180+ { label : 'Blog ' , autogenerate : { directory : 'blog /' } } ,
149181 ] ,
150182 } ,
151- {
152- label : 'blog' ,
153- link : '/blog' ,
154- items : [
155- { label : 'blog' , autogenerate : { directory : 'blog/' } } ,
156- ] ,
183+ ] , {
184+ exclude : [ '/404' ] ,
185+ topics : {
186+ documentation : [ '/mobile-react-native-locators' , '/installation' , '/continuous-integration' , '/internal-test-server' ] ,
187+ helpers : [ '/helpers/puppeteer-firefox' , '/helpers/protractor' ] ,
157188 } ,
158- ] ) ,
189+ } ) ,
159190 starlightScrollToTop ( {
160191 position : 'right' ,
161192 tooltipText : 'Back to top' ,
@@ -172,6 +203,11 @@ export default defineConfig({
172203 } ) ,
173204 ] ,
174205 vite : {
206+ resolve : {
207+ alias : {
208+ zod : 'zod/v3' ,
209+ } ,
210+ } ,
175211 plugins : [ tailwindcss ( ) ] ,
176212 build : {
177213 assetsInlineLimit : 0 ,
@@ -183,3 +219,5 @@ export default defineConfig({
183219 ] ,
184220 } ,
185221} ) ;
222+
223+
0 commit comments