修复bug

This commit is contained in:
2026-07-31 15:34:35 +08:00
parent d0f94d95d7
commit b53fe81999
41 changed files with 362 additions and 3106 deletions
+24 -13
View File
@@ -22,16 +22,18 @@ function createMemoryStorage(): Storage {
}
}
describe('LoginView access preview lifecycle', () => {
describe('LoginView authentication lifecycle', () => {
beforeEach(() => {
vi.stubGlobal('localStorage', createMemoryStorage())
})
it('only exposes the integration account hint through the development environment branch', () => {
expect(loginSource).toContain('const isDevelopment = import.meta.env.DEV')
expect(loginSource).toContain('v-if="developmentHint" class="demo-tip"')
expect(loginSource).toContain("account: isDevelopment ? 'platform_admin' : ''")
expect(loginSource).toContain("password: isDevelopment ? 'ChangeMe123!' : ''")
it('always renders a blank login form without demo credentials or hints', () => {
expect(loginSource).toContain("account: ''")
expect(loginSource).toContain("password: ''")
expect(loginSource).not.toContain('import.meta.env.DEV')
expect(loginSource).not.toContain('platform_admin')
expect(loginSource).not.toContain('ChangeMe123!')
expect(loginSource).not.toContain('demo-tip')
})
it('initializes preview access after login and before redirecting', async () => {
@@ -59,12 +61,15 @@ describe('LoginView access preview lifecycle', () => {
stubs: {
'el-form': { template: '<form><slot /></form>' },
'el-form-item': { template: '<label><slot /></label>' },
'el-input': { template: '<input />' },
'el-input': { props: ['modelValue'], emits: ['update:modelValue'], template: '<input :value="modelValue" @input="$emit(\'update:modelValue\', $event.target.value)" />' },
'el-button': { emits: ['click'], template: '<button type="button" @click="$emit(\'click\')"><slot /></button>' },
},
},
})
const inputs = wrapper.findAll('input')
await inputs[0]!.setValue('test_admin')
await inputs[1]!.setValue('password')
await wrapper.get('.login-submit').trigger('click')
await flushPromises()
@@ -74,10 +79,10 @@ describe('LoginView access preview lifecycle', () => {
it.each([
['/customers?page=2', '/customers?page=2'],
['/customers/reviews', '/customers/reviews'],
['//example.com', '/customers'],
['https://example.com', '/customers'],
[['/customers', '/orders/first-leg'], '/customers'],
[null, '/customers'],
['//example.com', '/403'],
['https://example.com', '/403'],
[['/customers', '/orders/first-leg'], '/403'],
[null, '/403'],
])('sanitizes the post-login redirect %j to %s', async (redirect, expected) => {
const pinia = createPinia()
setActivePinia(pinia)
@@ -99,12 +104,15 @@ describe('LoginView access preview lifecycle', () => {
stubs: {
'el-form': { template: '<form><slot /></form>' },
'el-form-item': { template: '<label><slot /></label>' },
'el-input': { template: '<input />' },
'el-input': { props: ['modelValue'], emits: ['update:modelValue'], template: '<input :value="modelValue" @input="$emit(\'update:modelValue\', $event.target.value)" />' },
'el-button': { emits: ['click'], template: '<button type="button" @click="$emit(\'click\')"><slot /></button>' },
},
},
})
const inputs = wrapper.findAll('input')
await inputs[0]!.setValue('test_admin')
await inputs[1]!.setValue('password')
await wrapper.get('.login-submit').trigger('click')
await flushPromises()
@@ -134,12 +142,15 @@ describe('LoginView access preview lifecycle', () => {
stubs: {
'el-form': { template: '<form><slot /></form>' },
'el-form-item': { template: '<label><slot /></label>' },
'el-input': { template: '<input />' },
'el-input': { props: ['modelValue'], emits: ['update:modelValue'], template: '<input :value="modelValue" @input="$emit(\'update:modelValue\', $event.target.value)" />' },
'el-button': { emits: ['click'], template: '<button type="button" @click="$emit(\'click\')"><slot /></button>' },
},
},
})
const inputs = wrapper.findAll('input')
await inputs[0]!.setValue('test_admin')
await inputs[1]!.setValue('password')
await wrapper.get('.login-submit').trigger('click')
await flushPromises()