fix(n+1): 批量查询替代循环单查
- IsAdminBootstrapRequired: userRepo.GetByID 循环 → GetByIDs 批量 - AssignRoles: roleRepo.GetByID 循环 → GetByIDs 批量 - 在 userRepositoryInterface 补充 GetByIDs 方法签名
This commit is contained in:
33
frontend/admin/src/lib/playwright-e2e-scenarios.test.ts
Normal file
33
frontend/admin/src/lib/playwright-e2e-scenarios.test.ts
Normal file
@@ -0,0 +1,33 @@
|
||||
import { describe, expect, it } from 'vitest'
|
||||
|
||||
import { BASE_SCENARIO_NAMES, parseSelectedScenarioNames, selectScenarioNames } from '../../scripts/playwright-e2e-scenarios.mjs'
|
||||
|
||||
describe('playwright-e2e-scenarios', () => {
|
||||
it('prepends admin bootstrap when capabilities require it', () => {
|
||||
const scenarioNames = selectScenarioNames({
|
||||
requestedScenarioNames: parseSelectedScenarioNames(''),
|
||||
expectAdminBootstrap: true,
|
||||
})
|
||||
|
||||
expect(scenarioNames[0]).toBe('admin-bootstrap')
|
||||
expect(scenarioNames.slice(1)).toEqual(BASE_SCENARIO_NAMES)
|
||||
})
|
||||
|
||||
it('keeps admin bootstrap when filtering a later scenario', () => {
|
||||
const scenarioNames = selectScenarioNames({
|
||||
requestedScenarioNames: parseSelectedScenarioNames('email-activation'),
|
||||
expectAdminBootstrap: true,
|
||||
})
|
||||
|
||||
expect(scenarioNames).toEqual(['admin-bootstrap', 'email-activation'])
|
||||
})
|
||||
|
||||
it('does not invent admin bootstrap when it is no longer required', () => {
|
||||
const scenarioNames = selectScenarioNames({
|
||||
requestedScenarioNames: parseSelectedScenarioNames('email-activation'),
|
||||
expectAdminBootstrap: false,
|
||||
})
|
||||
|
||||
expect(scenarioNames).toEqual(['email-activation'])
|
||||
})
|
||||
})
|
||||
Reference in New Issue
Block a user