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) })