kin: auto-commit after pipeline

This commit is contained in:
Gros Frumos 2026-03-17 18:31:00 +02:00
parent c30a4c0fc4
commit 33fc38b01f
4 changed files with 459 additions and 67 deletions

View file

@ -792,7 +792,7 @@ describe('KIN-015: TaskDetail — Edit button и форма редактиров
// ─────────────────────────────────────────────────────────────
describe('KIN-049: TaskDetail — кнопка Deploy', () => {
function makeDeployTask(status: string, deployCommand: string | null) {
function makeDeployTask(status: string, deployCommand: string | null, deployRuntime: string | null = null) {
return {
id: 'KIN-049',
project_id: 'KIN',
@ -805,6 +805,9 @@ describe('KIN-049: TaskDetail — кнопка Deploy', () => {
spec: null,
execution_mode: null,
project_deploy_command: deployCommand,
project_deploy_host: null,
project_deploy_path: null,
project_deploy_runtime: deployRuntime,
created_at: '2024-01-01',
updated_at: '2024-01-01',
pipeline_steps: [],
@ -827,8 +830,8 @@ describe('KIN-049: TaskDetail — кнопка Deploy', () => {
expect(deployBtn?.exists(), 'Кнопка Deploy должна быть видна при done + deploy_command').toBe(true)
})
it('Кнопка Deploy скрыта при status=done но без project_deploy_command', async () => {
vi.mocked(api.taskFull).mockResolvedValue(makeDeployTask('done', null) as any)
it('Кнопка Deploy скрыта при status=done без project_deploy_command и project_deploy_runtime', async () => {
vi.mocked(api.taskFull).mockResolvedValue(makeDeployTask('done', null, null) as any)
const router = makeRouter()
await router.push('/task/KIN-049')
@ -839,7 +842,22 @@ describe('KIN-049: TaskDetail — кнопка Deploy', () => {
await flushPromises()
const hasDeployBtn = wrapper.findAll('button').some(b => b.text().includes('Deploy'))
expect(hasDeployBtn, 'Deploy не должна быть видна без deploy_command').toBe(false)
expect(hasDeployBtn, 'Deploy не должна быть видна без deploy_command и deploy_runtime').toBe(false)
})
it('Кнопка Deploy видна при status=done и только project_deploy_runtime задан', async () => {
vi.mocked(api.taskFull).mockResolvedValue(makeDeployTask('done', null, 'node') as any)
const router = makeRouter()
await router.push('/task/KIN-049')
const wrapper = mount(TaskDetail, {
props: { id: 'KIN-049' },
global: { plugins: [router] },
})
await flushPromises()
const deployBtn = wrapper.findAll('button').find(b => b.text().includes('Deploy'))
expect(deployBtn?.exists(), 'Кнопка Deploy должна быть видна при done + deploy_runtime').toBe(true)
})
it('Кнопка Deploy скрыта при status=pending (даже с deploy_command)', async () => {