Alerting: Fix AlertsFolderView not showing rules when using nested folders (#84465)

* Fix AlertsFolderView not showing rules when using nested folders

* Fix tests
This commit is contained in:
Sonia Aguilar 2024-03-15 14:08:09 +01:00 committed by GitHub
parent d06e73ac28
commit fa9f692707
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 8 additions and 3 deletions

View File

@ -42,13 +42,14 @@ const mockFolder = (folderOverride: Partial<FolderState> = {}): FolderState => {
};
describe('AlertsFolderView tests', () => {
it('Should display grafana alert rules when the namespace name matches the folder name', () => {
it('Should display grafana alert rules when the folder uid matches the name space uid', () => {
// Arrange
const folder = mockFolder();
const grafanaNamespace: CombinedRuleNamespace = {
name: folder.title,
rulesSource: GRAFANA_RULES_SOURCE_NAME,
uid: 'folder-1',
groups: [
{
name: 'group1',
@ -91,13 +92,14 @@ describe('AlertsFolderView tests', () => {
expect(alertRows[5]).toHaveTextContent('Test Alert 6');
});
it('Should not display alert rules when the namespace name does not match the folder name', () => {
it('Should not display alert rules when the namespace uid does not match the folder uid', () => {
// Arrange
const folder = mockFolder();
const grafanaNamespace: CombinedRuleNamespace = {
name: 'Folder without alerts',
rulesSource: GRAFANA_RULES_SOURCE_NAME,
uid: 'folder-2',
groups: [
{
name: 'default',
@ -130,6 +132,7 @@ describe('AlertsFolderView tests', () => {
const grafanaNamespace: CombinedRuleNamespace = {
name: folder.title,
rulesSource: GRAFANA_RULES_SOURCE_NAME,
uid: 'folder-1',
groups: [
{
name: 'default',
@ -162,6 +165,7 @@ describe('AlertsFolderView tests', () => {
const grafanaNamespace: CombinedRuleNamespace = {
name: folder.title,
rulesSource: GRAFANA_RULES_SOURCE_NAME,
uid: 'folder-1',
groups: [
{
name: 'default',

View File

@ -50,7 +50,8 @@ export const AlertsFolderView = ({ folder }: Props) => {
const { nameFilter, labelFilter, sortOrder, setNameFilter, setLabelFilter, setSortOrder } =
useAlertsFolderViewParams();
const matchingNamespace = combinedNamespaces.find((namespace) => namespace.name === folder.title);
const matchingNamespace = combinedNamespaces.find((namespace) => namespace.uid === folder.uid);
const alertRules = matchingNamespace?.groups.flatMap((group) => group.rules) ?? [];
const filteredRules = filterAndSortRules(alertRules, nameFilter, labelFilter, sortOrder ?? SortOrder.Ascending);