fix: 修复 rebase 后重复 clearBrandImage 声明 + 测试加 dismissDialog
- 删除 MyDiary.vue 重复的 clearBrandImage 函数(rebase 遗留) - 测试加 dismissDialog() 关闭 CI 中 API 错误弹出的 dialog Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
This commit is contained in:
@@ -1,36 +1,47 @@
|
||||
// Helper: dismiss any CustomDialog that may appear (e.g. API errors in CI)
|
||||
function dismissDialog() {
|
||||
cy.get('body').then($body => {
|
||||
if ($body.find('.dialog-overlay').length) {
|
||||
cy.get('.dialog-btn-primary').click()
|
||||
cy.get('.dialog-overlay').should('not.exist')
|
||||
}
|
||||
})
|
||||
}
|
||||
|
||||
describe('Recipe Detail', () => {
|
||||
beforeEach(() => {
|
||||
cy.visit('/')
|
||||
cy.get('.recipe-card', { timeout: 10000 }).should('have.length.gte', 1)
|
||||
dismissDialog()
|
||||
})
|
||||
|
||||
it('opens detail panel when clicking a recipe card', () => {
|
||||
cy.get('.recipe-card').first().click()
|
||||
dismissDialog()
|
||||
cy.get('.detail-overlay').should('be.visible')
|
||||
})
|
||||
|
||||
it('shows recipe name in detail view', () => {
|
||||
cy.get('.recipe-card').first().invoke('text').then(cardText => {
|
||||
cy.get('.recipe-card').first().click()
|
||||
cy.wait(500)
|
||||
dismissDialog()
|
||||
cy.get('.detail-overlay').should('be.visible')
|
||||
})
|
||||
})
|
||||
|
||||
it('shows ingredient info with drops', () => {
|
||||
cy.get('.recipe-card').first().click()
|
||||
cy.wait(500)
|
||||
dismissDialog()
|
||||
cy.contains('滴').should('exist')
|
||||
})
|
||||
|
||||
it('shows cost with ¥ symbol', () => {
|
||||
cy.get('.recipe-card').first().click()
|
||||
cy.wait(500)
|
||||
dismissDialog()
|
||||
cy.contains('¥').should('exist')
|
||||
})
|
||||
|
||||
it('closes detail panel when clicking close button', () => {
|
||||
cy.get('.recipe-card').first().click()
|
||||
dismissDialog()
|
||||
cy.get('.detail-overlay').should('be.visible')
|
||||
cy.get('button').contains(/✕|关闭/).first().click()
|
||||
cy.get('.recipe-card').should('be.visible')
|
||||
@@ -38,8 +49,8 @@ describe('Recipe Detail', () => {
|
||||
|
||||
it('shows action buttons in detail', () => {
|
||||
cy.get('.recipe-card').first().click()
|
||||
cy.wait(500)
|
||||
cy.get('[class*="detail"] button').should('have.length.gte', 1)
|
||||
dismissDialog()
|
||||
cy.get('.detail-overlay button').should('have.length.gte', 1)
|
||||
})
|
||||
|
||||
it('shows favorite star on recipe cards', () => {
|
||||
@@ -57,10 +68,12 @@ describe('Recipe Detail - Editor (Admin)', () => {
|
||||
}
|
||||
})
|
||||
cy.get('.recipe-card', { timeout: 10000 }).should('have.length.gte', 1)
|
||||
dismissDialog()
|
||||
})
|
||||
|
||||
it('shows editable ingredients table in editor tab', () => {
|
||||
cy.get('.recipe-card').first().click()
|
||||
dismissDialog()
|
||||
cy.get('.detail-overlay', { timeout: 5000 }).should('be.visible')
|
||||
cy.get('.detail-overlay').then($el => {
|
||||
if ($el.find(':contains("编辑")').filter('button').length) {
|
||||
@@ -74,6 +87,7 @@ describe('Recipe Detail - Editor (Admin)', () => {
|
||||
|
||||
it('shows add ingredient button in editor tab', () => {
|
||||
cy.get('.recipe-card').first().click()
|
||||
dismissDialog()
|
||||
cy.get('.detail-overlay', { timeout: 5000 }).should('be.visible')
|
||||
cy.get('.detail-overlay').then($el => {
|
||||
if ($el.find(':contains("编辑")').filter('button').length) {
|
||||
@@ -87,6 +101,7 @@ describe('Recipe Detail - Editor (Admin)', () => {
|
||||
|
||||
it('shows save image button', () => {
|
||||
cy.get('.recipe-card').first().click()
|
||||
dismissDialog()
|
||||
cy.get('.detail-overlay', { timeout: 5000 }).should('be.visible')
|
||||
cy.contains('保存图片').should('exist')
|
||||
})
|
||||
|
||||
@@ -574,26 +574,6 @@ async function clearBrandImage(type) {
|
||||
}
|
||||
}
|
||||
|
||||
async function clearBrandImage(type) {
|
||||
const fieldMap = { logo: 'brand_logo', bg: 'brand_bg', qr: 'qr_code' }
|
||||
const field = fieldMap[type]
|
||||
if (!field) return
|
||||
try {
|
||||
const res = await api('/api/brand', {
|
||||
method: 'PUT',
|
||||
body: JSON.stringify({ [field]: '' }),
|
||||
})
|
||||
if (res.ok) {
|
||||
if (type === 'logo') brandLogo.value = ''
|
||||
else if (type === 'bg') brandBg.value = ''
|
||||
else if (type === 'qr') brandQrImage.value = ''
|
||||
ui.showToast('已清除')
|
||||
}
|
||||
} catch {
|
||||
ui.showToast('清除失败')
|
||||
}
|
||||
}
|
||||
|
||||
// Account
|
||||
async function updateDisplayName() {
|
||||
try {
|
||||
|
||||
Reference in New Issue
Block a user