refactor: add hydrogen customer drilldown
This commit is contained in:
@@ -1,7 +1,9 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import test from 'node:test';
|
||||
import app from './index.js';
|
||||
import {
|
||||
parseHydrogenCustomerKind,
|
||||
parseHydrogenCustomerName,
|
||||
parseHydrogenStationId,
|
||||
} from './query.js';
|
||||
|
||||
@@ -19,3 +21,21 @@ test('defaults unknown customer scopes to lingniu', () => {
|
||||
assert.equal(parseHydrogenCustomerKind('invalid'), 'lingniu');
|
||||
assert.equal(parseHydrogenCustomerKind(undefined), 'lingniu');
|
||||
});
|
||||
|
||||
test('normalizes bounded customer names for exact matching', () => {
|
||||
assert.equal(parseHydrogenCustomerName(' 武汉客户 '), '武汉客户');
|
||||
assert.equal(parseHydrogenCustomerName('未指定客户'), '未指定客户');
|
||||
assert.equal(parseHydrogenCustomerName(' '), null);
|
||||
assert.equal(parseHydrogenCustomerName('x'.repeat(129)), null);
|
||||
assert.equal(parseHydrogenCustomerName(undefined), null);
|
||||
});
|
||||
|
||||
test('rejects invalid entity filters before querying hydrogen data', async () => {
|
||||
const invalidStation = await app.request('/hydrogen/daily?stationId=-1');
|
||||
assert.equal(invalidStation.status, 400);
|
||||
assert.deepEqual(await invalidStation.json(), { error: 'stationId 必须是非负整数' });
|
||||
|
||||
const invalidCustomer = await app.request(`/hydrogen/daily?customerName=${'x'.repeat(129)}`);
|
||||
assert.equal(invalidCustomer.status, 400);
|
||||
assert.deepEqual(await invalidCustomer.json(), { error: 'customerName 必须是 1-128 个字符' });
|
||||
});
|
||||
|
||||
Reference in New Issue
Block a user