Files
supabase/apps/studio/components/layouts/AdvisorsLayout/AdvisorsMenu.utils.test.ts
Jordi Enric 38e8f12b1b fix(studio): gate homepage health advisor (#50328)
## Problem

Health Advisor results appear on the project homepage whenever the main
`healthAdvisor` flag is enabled, so the homepage cannot be rolled out
separately. The existing gates also contain redundant boolean and
platform checks.

## Fix

Require both `healthAdvisor` and `healthAdvisorInHomepage` before
fetching or displaying health advisories on the homepage. Simplify all
Health Advisor gates to use the boolean ConfigCat flag directly,
including the cleanup requested in the review of #50326.

## How to test

- Enable only `healthAdvisor` and verify Health Advisor remains
available outside the homepage while health results do not appear or
load on the homepage.
- Enable both flags and verify health results appear on the homepage.
- Disable `healthAdvisor` and verify Health Advisor remains unavailable
everywhere.
- Existing targeted tests pass: 5 tests across Advisor menu and panel
integration suites.
- Prettier and whitespace checks pass.


<!-- This is an auto-generated comment: release notes by coderabbit.ai
-->
## Summary by CodeRabbit

* **New Features**
* Health Advisor is now available in non-platform environments when
enabled.
* Navigation, filtering, lint checks, and project pages consistently
follow the Health Advisor feature setting.
  * Self-hosted environments can use the Health Advisor category.
* **Bug Fixes**
* Homepage Health Advisor visibility now follows both the Health Advisor
and homepage-specific settings.
* Updated empty states and health lint results to match the configured
availability.
<!-- end of auto-generated comment: release notes by coderabbit.ai -->
2026-09-14 13:34:24 +00:00

38 lines
961 B
TypeScript

import { describe, expect, it } from 'vitest'
import { generateAdvisorsMenu } from './AdvisorsMenu.utils'
describe('generateAdvisorsMenu', () => {
it('puts Health Advisor first when enabled', () => {
const [advisors] = generateAdvisorsMenu({
ref: 'abc',
isAdvisorRulesEnabled: false,
isHealthAdvisorEnabled: true,
isPlatform: true,
})
expect(advisors.items.map((item) => item.key)).toEqual([
'health',
'security',
'performance',
'query-performance',
])
expect(advisors.items[0].url).toBe('/project/abc/advisors/health')
})
it('omits Health Advisor when disabled', () => {
const [advisors] = generateAdvisorsMenu({
ref: 'abc',
isAdvisorRulesEnabled: false,
isHealthAdvisorEnabled: false,
isPlatform: true,
})
expect(advisors.items.map((item) => item.key)).toEqual([
'security',
'performance',
'query-performance',
])
})
})