// tests/scaffold-git-remote.test.ts
import { describe, it, expect } from 'vitest'
import { decideRemoteAction } from '../scripts/scaffold-git-remote.mjs'

const opts = { projectName: 'my-product', giteaHost: 'product-demo.tvustream.com:3001' }

describe('decideRemoteAction', () => {
  it('已有 remote → use-existing，绝不覆盖', () => {
    const r = decideRemoteAction({ hasRepo: true, hasRemote: true, existingRemote: 'git@github.com:me/x.git' }, opts)
    expect(r.action).toBe('use-existing')
    expect(r.message).toMatch(/git@github.com:me\/x\.git/)
    expect(r.suggestedRemote).toBeUndefined()
  })

  it('有 repo 无 remote → suggest-default（Gitea + 项目名，用户可覆盖）', () => {
    const r = decideRemoteAction({ hasRepo: true, hasRemote: false }, opts)
    expect(r.action).toBe('suggest-default')
    expect(r.suggestedRemote).toBe('product-demo.tvustream.com:3001/ux-team/my-product.git')
    expect(r.message).toMatch(/可覆盖|确认/)
  })

  it('无 repo → init-then-suggest', () => {
    const r = decideRemoteAction({ hasRepo: false, hasRemote: false }, opts)
    expect(r.action).toBe('init-then-suggest')
    expect(r.suggestedRemote).toBe('product-demo.tvustream.com:3001/ux-team/my-product.git')
  })
})
