M7-T06: add meter management UI (timeline, declare swap, edit) to Energy view
This commit is contained in:
@@ -381,6 +381,44 @@ describe('EnergyPage — test-read', () => {
|
||||
})
|
||||
})
|
||||
|
||||
describe('EnergyPage — meters tab', () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks()
|
||||
setupDefaultMocks()
|
||||
})
|
||||
|
||||
it('renders Meters tab in the tab list', async () => {
|
||||
renderEnergy()
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.getByTestId('tab-meters')).toBeInTheDocument()
|
||||
})
|
||||
expect(screen.getByTestId('tab-meters').textContent).toContain('Meters')
|
||||
})
|
||||
|
||||
it('renders meters panel when Meters tab is clicked', async () => {
|
||||
mockGet.mockImplementation((path: string) => {
|
||||
if (path === '/api/modbus/devices') {
|
||||
return Promise.resolve({ data: { items: [DEVICE], total: 1 } })
|
||||
}
|
||||
if (path === '/api/energy/meters') {
|
||||
return Promise.resolve({ data: { items: [], total: 0 } })
|
||||
}
|
||||
return Promise.resolve({ data: null })
|
||||
})
|
||||
|
||||
renderEnergy()
|
||||
|
||||
await waitFor(() => expect(screen.getByTestId('tab-meters')).toBeInTheDocument())
|
||||
|
||||
fireEvent.click(screen.getByTestId('tab-meters'))
|
||||
|
||||
await waitFor(() => {
|
||||
expect(screen.getByTestId('panel-meters')).toBeInTheDocument()
|
||||
})
|
||||
})
|
||||
})
|
||||
|
||||
describe('EnergyPage — auto-refresh switch', () => {
|
||||
beforeEach(() => {
|
||||
vi.clearAllMocks()
|
||||
|
||||
@@ -42,6 +42,7 @@ import { useDevices, useDeleteDevice, useTestReadDevice, useLatestReading, useMe
|
||||
import { DeviceForm } from '../energy/DeviceForm'
|
||||
import { EnergyCharts } from '../energy/EnergyCharts'
|
||||
import { ContractManager } from '../energy/ContractManager'
|
||||
import { MeterManager } from '../energy/MeterManager'
|
||||
import { TibberPrices } from '../energy/TibberPrices'
|
||||
import { CostView } from '../energy/CostView'
|
||||
import { DsmrPanel } from '../energy/DsmrPanel'
|
||||
@@ -661,6 +662,9 @@ export function EnergyPage() {
|
||||
<Tabs.Tab value="devices" data-testid="tab-devices">
|
||||
Devices
|
||||
</Tabs.Tab>
|
||||
<Tabs.Tab value="meters" data-testid="tab-meters">
|
||||
Meters
|
||||
</Tabs.Tab>
|
||||
<Tabs.Tab value="contracts" data-testid="tab-contracts">
|
||||
Contracts
|
||||
</Tabs.Tab>
|
||||
@@ -679,6 +683,10 @@ export function EnergyPage() {
|
||||
<DevicesTab />
|
||||
</Tabs.Panel>
|
||||
|
||||
<Tabs.Panel value="meters" data-testid="panel-meters">
|
||||
<MeterManager />
|
||||
</Tabs.Panel>
|
||||
|
||||
<Tabs.Panel value="contracts" data-testid="panel-contracts">
|
||||
<ContractManager />
|
||||
</Tabs.Panel>
|
||||
|
||||
Reference in New Issue
Block a user