import test from 'node:test'
import assert from 'node:assert/strict'
import fs from 'node:fs'
import { buildPipeNetworkStatisticsQuery } from '../src/utils/waterFacilityStatisticsModel.js'
test('statistics query mirrors dashboard and export filters', () => {
assert.deepEqual(
buildPipeNetworkStatisticsQuery({
facilityTypes: ['plant', 'pipe', ''],
status: '1'
}),
{ facilityTypes: 'plant,pipe', status: '1' }
)
})
test('statistics query omits empty filters instead of requesting empty datasets', () => {
assert.deepEqual(buildPipeNetworkStatisticsQuery(), {})
assert.deepEqual(buildPipeNetworkStatisticsQuery({ facilityTypes: ['', ' '], status: '' }), {})
})
test('statistics page prevents empty facility-type requests and export', () => {
const source = fs.readFileSync(
'src/views/subSystem/waterSupply/components/WaterFacilityDashboard.vue',
'utf8'
)
assert.match(source, /buildPipeNetworkStatisticsQuery/u)
assert.match(source, /:disabled="!selectedTypes\.length"/u)
assert.match(source, /请至少选择一类设施/u)
assert.match(source, /if \(!selectedTypes\.value\.length\)/u)
})
test('statistics status filter follows the facility status contract', () => {
const source = fs.readFileSync(
'src/views/subSystem/waterSupply/components/WaterFacilityDashboard.vue',
'utf8'
)
assert.match(source, //u)
assert.doesNotMatch(source, /value="2"/u)
})