diff --git a/astro.config.mjs b/astro.config.mjs
index 873fbef4..41b47b5b 100644
--- a/astro.config.mjs
+++ b/astro.config.mjs
@@ -80,6 +80,7 @@ export default defineConfig({
Search: './src/components/Search.astro',
PageTitle: './src/components/PageTitle.astro',
ThemeSelect: './src/components/ThemeSelect.astro',
+ MarkdownContent: './src/components/MarkdownContent.astro',
},
sidebar: (docsSidebar = [
@@ -556,6 +557,7 @@ export default defineConfig({
collapsed: false,
items: [
{ label: 'Contact Us', link: '/support'},
+ { label: 'Knowledge Base', link: 'https://knowledge.testomat.io', attrs: { target: '_blank' } },
],
},
]),
diff --git a/src/components/Links.astro b/src/components/Links.astro
index 7a827965..e69f800b 100644
--- a/src/components/Links.astro
+++ b/src/components/Links.astro
@@ -8,6 +8,10 @@ const links = [
link: 'https://changelog.testomat.io',
data: 'Changelog'
},
+ {
+ link: 'https://knowledge.testomat.io',
+ data: 'Knowledge Base'
+ },
{
link: 'https://testomat.io/blog/',
data: 'Blog'
diff --git a/src/components/MarkdownContent.astro b/src/components/MarkdownContent.astro
new file mode 100644
index 00000000..38ff9a0c
--- /dev/null
+++ b/src/components/MarkdownContent.astro
@@ -0,0 +1,105 @@
+---
+import Default from '@astrojs/starlight/components/MarkdownContent.astro';
+
+const KB = 'https://knowledge.testomat.io';
+
+// First matching prefix wins, so keep the specific paths above the general ones
+const categories = [
+ ['getting-started', 'getting-started', 'getting started'],
+ ['project/runs', 'test-runs', 'test runs'],
+ ['project/analytics', 'reporting-analytics', 'reporting and analytics'],
+ ['advanced/global-analytics', 'reporting-analytics', 'reporting and analytics'],
+ ['advanced/api-access', 'api', 'the API'],
+ ['tutorials/interacting-via-api', 'api', 'the API'],
+ ['advanced/ai-powered-features', 'ai', 'AI features'],
+ ['tutorials/using-ai-in-testing', 'ai', 'AI features'],
+ ['tutorials/mcp-connection', 'ai', 'AI features'],
+ ['tutorials/connect-', 'ai', 'AI features'],
+ ['tutorials/working-with-jira', 'integrations', 'integrations'],
+ ['tutorials/manual-testing', 'test-management', 'test management'],
+ ['tutorials/working-with-plans', 'test-management', 'test management'],
+ ['tutorials/migration-from', 'test-management', 'test management'],
+ ['tutorials/set-up-read-only-access', 'account-access', 'account access'],
+ ['tutorials', 'automation', 'test automation'],
+ ['test-reporting', 'automation', 'test automation'],
+ ['integrations', 'integrations', 'integrations'],
+ ['management/company/plan-features-comparison', 'billing', 'billing'],
+ ['management/company/subscriptions', 'billing', 'billing'],
+ ['management/company/trials', 'billing', 'billing'],
+ ['management', 'account-access', 'account access'],
+ ['project', 'test-management', 'test management'],
+ ['advanced', 'test-management', 'test management'],
+];
+
+const id = Astro.locals.starlightRoute.id.toLowerCase();
+const match = categories.find(([prefix]) => id.startsWith(prefix));
+const [, slug, topic] = match ?? [];
+---
+
+
+
+{
+ match && (
+
+ )
+}
+
+
diff --git a/src/content/docs/advanced/global-analytics/analytics-dashboards.md b/src/content/docs/advanced/global-analytics/analytics-dashboards.md
index a924e8ae..1efaf262 100644
--- a/src/content/docs/advanced/global-analytics/analytics-dashboards.md
+++ b/src/content/docs/advanced/global-analytics/analytics-dashboards.md
@@ -183,4 +183,5 @@ To ensure rapid loading times across large datasets, widget results are cached a
- [Milestones](https://docs.testomat.io/advanced/milestones) - group tests, plans, and runs into a milestone.
- [Project Analytics](https://docs.testomat.io/project/analytics) - drill into a single project when a company-wide view is not enough.
- [Tags or Labels](https://docs.testomat.io/advanced/tags-labels/tags-or-labels) - tag and label your tests.
-- [Users Roles & Access](https://docs.testomat.io/management/company/users-and-permissions) - check who can create and edit dashboards in your company.
\ No newline at end of file
+- [Users Roles & Access](https://docs.testomat.io/management/company/users-and-permissions) - check who can create and edit dashboards in your company.
+- [Why does my dashboard query throw an error?](https://knowledge.testomat.io/reporting-analytics/custom-dashboard-creation-error-query/) - fix a widget query that fails.
\ No newline at end of file
diff --git a/src/content/docs/integrations/issues-management/linear.md b/src/content/docs/integrations/issues-management/linear.md
index b7cee444..f256961f 100644
--- a/src/content/docs/integrations/issues-management/linear.md
+++ b/src/content/docs/integrations/issues-management/linear.md
@@ -115,3 +115,5 @@ Linear requirements refresh **once a day**. To pull the latest version right awa
- [Issues Management Systems](https://docs.testomat.io/integrations/issues-management)
- [AI-Requirements](https://docs.testomat.io/advanced/ai-powered-features/ai-requirements)
- [Defects](https://docs.testomat.io/project/defects)
+- [How do I activate the Linear integration?](https://knowledge.testomat.io/integrations/activate-linear-integration/)
+- [Why does Linear integration say ‘team not found’?](https://knowledge.testomat.io/integrations/linear-integration-team-not-found/)
diff --git a/src/content/docs/project/tests/bulk-test-selection.md b/src/content/docs/project/tests/bulk-test-selection.md
index 2e9dbedd..e80d32b6 100644
--- a/src/content/docs/project/tests/bulk-test-selection.md
+++ b/src/content/docs/project/tests/bulk-test-selection.md
@@ -57,4 +57,5 @@ Choose the action you need and follow the prompts that appear.
- [Test Priority](https://docs.testomat.io/project/tests/test-priority)
- [Tags, Labels, and Assignees](https://docs.testomat.io/project/tests/tags-labels-and-assignees)
- [Move Tests](https://docs.testomat.io/project/tests/move-tests)
+- [Why do bulk-edit options differ between test cases?](https://knowledge.testomat.io/test-management/bulk-editing-options-automated-test-suites/)
diff --git a/src/content/docs/project/tests/classical-test-case-editor.md b/src/content/docs/project/tests/classical-test-case-editor.md
index 22e2194f..965cd160 100644
--- a/src/content/docs/project/tests/classical-test-case-editor.md
+++ b/src/content/docs/project/tests/classical-test-case-editor.md
@@ -300,3 +300,4 @@ In a Classical project, use the ID without `#`.
- [BDD Test Case Editor](https://docs.testomat.io/project/tests/bdd-test-case-editor)
- [Classical vs BDD](https://docs.testomat.io/project/tests/classical-vs-bdd)
+- [Why do `---` dividers cause odd formatting in test cases?](https://knowledge.testomat.io/troubleshooting/dividers-cause-odd-formatting/)
diff --git a/src/content/docs/project/tests/copying-tests-and-suites.md b/src/content/docs/project/tests/copying-tests-and-suites.md
index 4f7dbabf..47f2bf44 100644
--- a/src/content/docs/project/tests/copying-tests-and-suites.md
+++ b/src/content/docs/project/tests/copying-tests-and-suites.md
@@ -124,3 +124,4 @@ Testomat.io remembers your duplicate settings and uses the same selections the n
- [Suites and Folders](https://docs.testomat.io/project/tests/suites-and-folders)
- [Tags, Labels, and Assignees](https://docs.testomat.io/project/tests/tags-labels-and-assignees)
- [Bulk Edit](https://docs.testomat.io/advanced/bulk-edit-folder)
+- [Can I remove the ‘Shared’ icon from copied test cases?](https://knowledge.testomat.io/test-management/remove-shared-icon-copied-test-cases/)
diff --git a/src/content/docs/project/tests/create-a-test.md b/src/content/docs/project/tests/create-a-test.md
index e646823a..8a274394 100644
--- a/src/content/docs/project/tests/create-a-test.md
+++ b/src/content/docs/project/tests/create-a-test.md
@@ -96,3 +96,4 @@ All four save options save your changes. Choose one based on what you want to do
- [Classical Test Case Editor](https://docs.testomat.io/project/tests/classical-test-case-editor)
- [Steps Database](https://docs.testomat.io/project/steps-snippets/steps)
- [Tags](https://docs.testomat.io/advanced/tags-labels/tags)
+- [How should I organize automated and manual tests in Testomat?](https://knowledge.testomat.io/test-management/organize-automated-manual-tests-testomat/)
diff --git a/src/content/docs/project/tests/dynamic-parameters.md b/src/content/docs/project/tests/dynamic-parameters.md
index 9681d045..6ee8caf2 100644
--- a/src/content/docs/project/tests/dynamic-parameters.md
+++ b/src/content/docs/project/tests/dynamic-parameters.md
@@ -123,4 +123,5 @@ Using `${}` everywhere keeps the syntax consistent.
- [Test Steps and Expected Results](https://docs.testomat.io/project/tests/test-steps-and-expected-results)
- [Edit Test Steps](https://docs.testomat.io/project/tests/edit-test-steps)
- [Tags, Labels, and Assignees](https://docs.testomat.io/project/tests/tags-labels-and-assignees)
+- [Can I add parameterised variables in a test?](https://knowledge.testomat.io/test-management/add-parameterised-variables-in-test/)
diff --git a/src/content/docs/project/tests/restoring-deleted-tests.md b/src/content/docs/project/tests/restoring-deleted-tests.md
index 3c07c56b..f46bc1bd 100644
--- a/src/content/docs/project/tests/restoring-deleted-tests.md
+++ b/src/content/docs/project/tests/restoring-deleted-tests.md
@@ -51,4 +51,6 @@ Attachments have a separate retention period and are restored from the **Attachm
- [Move Tests](https://docs.testomat.io/project/tests/move-tests)
- [Test Attachments](https://docs.testomat.io/project/tests/test-attachments)
+- [How do I retrieve deleted tests in Pulse?](https://knowledge.testomat.io/troubleshooting/retrieve-deleted-tests-in-pulse/)
+- [How to retrieve lost test data from empty folders?](https://knowledge.testomat.io/test-management/retrieve-lost-test-data-from-empty-folders/)
diff --git a/src/content/docs/project/tests/sharing-tests-and-suites.md b/src/content/docs/project/tests/sharing-tests-and-suites.md
index 6a905cde..77f23a90 100644
--- a/src/content/docs/project/tests/sharing-tests-and-suites.md
+++ b/src/content/docs/project/tests/sharing-tests-and-suites.md
@@ -174,4 +174,5 @@ After unlinking:
- [Test URL and ID](https://docs.testomat.io/project/tests/test-url-and-id)
- [Suites and Folders](https://docs.testomat.io/project/tests/suites-and-folders)
+- [How can I share my test repo with a project leader who is not registered?](https://knowledge.testomat.io/account-access/share-test-repo-with-unregistered-project-leader/)
\ No newline at end of file
diff --git a/src/content/docs/project/tests/suites-and-folders.md b/src/content/docs/project/tests/suites-and-folders.md
index 737e4275..90704f17 100644
--- a/src/content/docs/project/tests/suites-and-folders.md
+++ b/src/content/docs/project/tests/suites-and-folders.md
@@ -101,4 +101,5 @@ You can now add other suites to the folder.
- [Create a Test](https://docs.testomat.io/project/tests/create-a-test)
- [Copying Tests and Suites](https://docs.testomat.io/project/tests/copying-tests-and-suites)
-- [Sharing Tests and Suites](https://docs.testomat.io/project/tests/sharing-tests-and-suites)
\ No newline at end of file
+- [Sharing Tests and Suites](https://docs.testomat.io/project/tests/sharing-tests-and-suites)
+- [How should I organize automated and manual tests in Testomat?](https://knowledge.testomat.io/test-management/organize-automated-manual-tests-testomat/)
\ No newline at end of file
diff --git a/src/content/docs/project/tests/tags-labels-and-assignees.md b/src/content/docs/project/tests/tags-labels-and-assignees.md
index 1666aff3..dcca42f0 100644
--- a/src/content/docs/project/tests/tags-labels-and-assignees.md
+++ b/src/content/docs/project/tests/tags-labels-and-assignees.md
@@ -94,4 +94,5 @@ Assigning a test in a run does not change its test assignment.
- [Create a Test](https://docs.testomat.io/project/tests/create-a-test)
- [Test Attachments](https://docs.testomat.io/project/tests/test-attachments)
- [Tags](https://docs.testomat.io/advanced/tags-labels/tags/)
+- [Can you parse pytest marks as tags in Testomat.io?](https://knowledge.testomat.io/test-management/parse-pytest-marks-as-tags/)
\ No newline at end of file
diff --git a/src/content/docs/project/tests/test-steps-and-expected-results.md b/src/content/docs/project/tests/test-steps-and-expected-results.md
index 837ea513..c76ff9d2 100644
--- a/src/content/docs/project/tests/test-steps-and-expected-results.md
+++ b/src/content/docs/project/tests/test-steps-and-expected-results.md
@@ -156,4 +156,5 @@ The **Edit steps** control on the test preview page converts your steps to its o
- [Classical Test Case Editor](https://docs.testomat.io/project/tests/classical-test-case-editor)
- [Steps Database](https://docs.testomat.io/project/steps-snippets/steps)
- [Keyboard Shortcuts](https://docs.testomat.io/advanced/shortcuts)
+- [Can I customize the result fields for each test case?](https://knowledge.testomat.io/test-management/customize-test-result-fields/)
\ No newline at end of file
diff --git a/src/content/docs/project/tests/undetaching-tests.md b/src/content/docs/project/tests/undetaching-tests.md
index 5858e7ce..ed44d815 100644
--- a/src/content/docs/project/tests/undetaching-tests.md
+++ b/src/content/docs/project/tests/undetaching-tests.md
@@ -79,4 +79,5 @@ If the test no longer has automation code, undetaching it changes the test to **
- [Test Tree Display](https://docs.testomat.io/project/tests/test-tree-display)
- [Restoring Deleted Tests](https://docs.testomat.io/project/tests/restoring-deleted-tests)
- [Import Tests From Source Code](https://docs.testomat.io/project/import-export/import/import-tests-from-source-code)
+- [How to scope detachment to specific directories with the –partial flag?](https://knowledge.testomat.io/automation/scope-detachment-specific-directories-partial-flag/)
\ No newline at end of file
diff --git a/src/content/docs/tutorials/Interacting-via-API.md b/src/content/docs/tutorials/Interacting-via-API.md
index 84ab316a..92974a3d 100644
--- a/src/content/docs/tutorials/Interacting-via-API.md
+++ b/src/content/docs/tutorials/Interacting-via-API.md
@@ -156,4 +156,6 @@ npx -y @testomatio/mcp@latest --token --project
* See every endpoint, parameter, and schema in the [API Reference](https://docs.testomat.io/advanced/api-access/#api-reference).
* Reporting from a test framework instead of raw requests? See the [Testomat.io Reporter](https://docs.testomat.io/test-reporting/reporter/#_top).
-* Want to filter results precisely? Learn the query language in [TQL](https://docs.testomat.io/advanced/tql/#_top).
\ No newline at end of file
+* Want to filter results precisely? Learn the query language in [TQL](https://docs.testomat.io/advanced/tql/#_top).
+* Not sure where to find your credentials? See [How do I get the project ID and API token?](https://knowledge.testomat.io/api/get-project-id-api-token/)
+* Need to add tests to a specific folder? See [How do I push test cases to a folder via API?](https://knowledge.testomat.io/api/push-test-cases-to-folder-via-api/)
\ No newline at end of file
diff --git a/src/content/docs/tutorials/connect-chatgpt-to-testomat.md b/src/content/docs/tutorials/connect-chatgpt-to-testomat.md
index 3e35179b..8575a3e7 100644
--- a/src/content/docs/tutorials/connect-chatgpt-to-testomat.md
+++ b/src/content/docs/tutorials/connect-chatgpt-to-testomat.md
@@ -94,3 +94,4 @@ ChatGPT can read and change the same things you can, so anything it writes appea
- [MCP - Connect Claude](https://docs.testomat.io/tutorials/connect-claude-to-testomat)
- [MCP - Connect with a Config File](https://docs.testomat.io/tutorials/mcp-connection)
- [AI-Powered Features](https://docs.testomat.io/advanced/ai-powered-features)
+- [Why can’t I connect to the Testomat.io MCP Server?](https://knowledge.testomat.io/ai/cannot-connect-testomat-mcp/)
diff --git a/src/content/docs/tutorials/connect-claude-to-testomat.md b/src/content/docs/tutorials/connect-claude-to-testomat.md
index ed52011c..b9209719 100644
--- a/src/content/docs/tutorials/connect-claude-to-testomat.md
+++ b/src/content/docs/tutorials/connect-claude-to-testomat.md
@@ -94,3 +94,5 @@ Claude can read and change the same things you can, so anything it writes appear
- [MCP - Connect with a Config File](https://docs.testomat.io/tutorials/mcp-connection)
- [Test Query Language (TQL)](https://docs.testomat.io/advanced/tql)
- [API Access](https://docs.testomat.io/advanced/api-access)
+- [Where can I find the Testomat MCP for Claude?](https://knowledge.testomat.io/ai/locate-testomat-mcp-for-claude/)
+- [Why can’t I connect to the Testomat.io MCP Server?](https://knowledge.testomat.io/ai/cannot-connect-testomat-mcp/)
diff --git a/src/content/docs/tutorials/mcp-connection.md b/src/content/docs/tutorials/mcp-connection.md
index ed18bcc2..8c14543b 100644
--- a/src/content/docs/tutorials/mcp-connection.md
+++ b/src/content/docs/tutorials/mcp-connection.md
@@ -160,4 +160,6 @@ Once connected, your assistant works with your project through [Public API v2](h
* Prefer signing in instead of editing a config file? See [MCP - Connect Claude](https://docs.testomat.io/tutorials/connect-claude-to-testomat) or [MCP - Connect ChatGPT](https://docs.testomat.io/tutorials/connect-chatgpt-to-testomat).
* Need to establish a connection with Testomat.io? See [API Access](https://docs.testomat.io/advanced/api-access/) for more details.
* Learn how to customize your test syntax at [Test Query Language (TQL)](https://docs.testomat.io/advanced/tql/).
-* Read [Interacting via API](https://docs.testomat.io/tutorials/interacting-via-api/) to learn to interact with Testomat.io directly.
\ No newline at end of file
+* Read [Interacting via API](https://docs.testomat.io/tutorials/interacting-via-api/) to learn to interact with Testomat.io directly.
+* Connection fails? See [Why can’t I connect to the Testomat.io MCP Server?](https://knowledge.testomat.io/ai/cannot-connect-testomat-mcp/)
+* Labels don’t show up in tool calls? See [Why are custom labels missing in MCP tool calls?](https://knowledge.testomat.io/ai/custom-labels-missing-mcp-tool-calls/)
\ No newline at end of file
diff --git a/src/content/docs/tutorials/playwright.md b/src/content/docs/tutorials/playwright.md
index e7d3f45e..4fdc1a01 100644
--- a/src/content/docs/tutorials/playwright.md
+++ b/src/content/docs/tutorials/playwright.md
@@ -247,4 +247,6 @@ TESTOMATIO={API_KEY} TESTOMATIO_TITLE="report for commit ${GIT_COMMIT}" TESTOMAT
* Want to see Playwright tests in action? Find and install [our example](https://docs.testomat.io/project/import-export/import/import-js/#playwright) for more details.
* Run your Playwright tests automatically on every commit - see [Continuous Integration](https://docs.testomat.io/integrations/continuous-integration/).
* Spot unstable and slow tests across your runs in [Analytics](https://docs.testomat.io/project/analytics/).
-* Get failures explained from your logs and traces with [AI-Powered Features](https://docs.testomat.io/advanced/ai-powered-features/ai-powered-features/).
\ No newline at end of file
+* Get failures explained from your logs and traces with [AI-Powered Features](https://docs.testomat.io/advanced/ai-powered-features/ai-powered-features/).
+* Test counts don’t match? See [Why is there a test count mismatch between Playwright and Testomat?](https://knowledge.testomat.io/automation/test-count-mismatch-playwright-testomat/)
+* Running in GitHub Actions? See [How do I set up GitHub Actions workflows for Playwright?](https://knowledge.testomat.io/automation/setup-github-actions-workflows-playwright/)
\ No newline at end of file