import request from '@/utils/request' import { getAlert, listAlerts } from '@/api/bell/alert' import { getEvent, getEventRuleResults, listEvents } from '@/api/bell/event' import { createRule, listRules, setRuleEnabled, updateRule } from '@/api/bell/rule' jest.mock('@/utils/request', () => jest.fn(config => Promise.resolve(config))) describe('Bell rule-alert API adapters', () => { beforeEach(() => request.mockClear()) it('maps read operations to the versioned Bell routes', async() => { await listAlerts({ status: 'open' }) await getAlert('alert-1') await listEvents({ severity: 'high' }) await getEvent('event-1') await getEventRuleResults('event-1') await listRules({ enabled: true }) expect(request.mock.calls.map(call => call[0])).toEqual([ { url: '/api/v1/bell/alerts', method: 'get', params: { status: 'open' }}, { url: '/api/v1/bell/alerts/alert-1', method: 'get' }, { url: '/api/v1/bell/events', method: 'get', params: { severity: 'high' }}, { url: '/api/v1/bell/events/event-1', method: 'get' }, { url: '/api/v1/bell/events/event-1/rule-results', method: 'get' }, { url: '/api/v1/bell/rules', method: 'get', params: { enabled: true }} ]) }) it('maps administrator writes without exposing unrelated operations', async() => { const payload = { name: 'εŒΊεŸŸθ§„εˆ™', minimumSeverity: 'high' } await createRule(payload) await updateRule('rule-1', payload) await setRuleEnabled('rule-1', false) expect(request.mock.calls.map(call => call[0])).toEqual([ { url: '/api/v1/bell/rules', method: 'post', data: payload }, { url: '/api/v1/bell/rules/rule-1', method: 'put', data: payload }, { url: '/api/v1/bell/rules/rule-1/enabled', method: 'put', data: { enabled: false }} ]) }) })