feat(M08-C): 建立管理员房态运营入口
This commit is contained in:
@@ -0,0 +1,67 @@
|
||||
import assert from 'node:assert/strict';
|
||||
import { readFileSync } from 'node:fs';
|
||||
import { join } from 'node:path';
|
||||
|
||||
const root = new URL('..', import.meta.url).pathname.replace(/^\/([A-Za-z]:)/, '$1');
|
||||
const read = (path) => readFileSync(join(root, path), 'utf8');
|
||||
|
||||
const appJson = JSON.parse(read('miniapp/app.json'));
|
||||
assert.ok(appJson.pages.includes('pages/manager/dashboard'));
|
||||
|
||||
const index = read('miniapp/pages/index/index.js') + read('miniapp/pages/index/index.wxml');
|
||||
for (const pattern of [
|
||||
'/auth/me',
|
||||
'showManagerEntry',
|
||||
'STORE_ADMIN',
|
||||
'TENANT_ADMIN',
|
||||
'PLATFORM_ADMIN',
|
||||
'openManager',
|
||||
'pages/manager/dashboard',
|
||||
'门店管理'
|
||||
]) {
|
||||
assert.match(index, new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')));
|
||||
}
|
||||
|
||||
const dashboard = read('miniapp/pages/manager/dashboard.js')
|
||||
+ read('miniapp/pages/manager/dashboard.wxml')
|
||||
+ read('miniapp/pages/manager/dashboard.wxss');
|
||||
for (const pattern of [
|
||||
'/management/stores',
|
||||
'/management/stores/${encodeURIComponent(storeId)}/rooms',
|
||||
'/management/rooms/${encodeURIComponent(roomId)}/status',
|
||||
'/orders?page=1&pageSize=50',
|
||||
"method: 'PATCH'",
|
||||
'store.operation.write',
|
||||
'tenant.manage',
|
||||
'changeRoomStatus',
|
||||
'toggleRoomConfiguration',
|
||||
'activeOrders',
|
||||
'实时房态',
|
||||
'近期订单',
|
||||
'只读'
|
||||
]) {
|
||||
assert.match(dashboard, new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')));
|
||||
}
|
||||
|
||||
const routes = read('backend/src/routes/store-room-management.ts');
|
||||
for (const pattern of [
|
||||
'/app-api/management/stores',
|
||||
'/app-api/management/stores/:storeId/rooms',
|
||||
'/app-api/management/rooms/:id/status',
|
||||
'roomStatusSchema',
|
||||
'updateRoomStatus'
|
||||
]) {
|
||||
assert.match(routes, new RegExp(pattern.replace(/[.*+?^${}()|[\]\\]/g, '\\$&')));
|
||||
}
|
||||
|
||||
const repository = read('backend/src/stores/store-room-repository.ts');
|
||||
assert.match(repository, /ROOM_STATUS_UPDATED/);
|
||||
assert.match(repository, /store\.operation\.read/);
|
||||
assert.match(repository, /store\.operation\.write/);
|
||||
assert.match(repository, /JSON\.stringify\(metadata\)/);
|
||||
|
||||
const migration = read('database/migrations/2026081001_m08c_staff_management_access.up.sql');
|
||||
assert.match(migration, /r\.code = 'STAFF'/);
|
||||
assert.match(migration, /store\.operation\.read/);
|
||||
|
||||
console.log('PASS: M08-C manager/staff miniapp exposes scoped stores, room status and order overview.');
|
||||
Reference in New Issue
Block a user