// Copyright 2026 The Gitea Authors. All rights reserved. // SPDX-License-Identifier: MIT package stack import ( "context" "testing" "gitea.dev/tea/modules/config" "github.com/stretchr/testify/assert" ) func TestStackPush(t *testing.T) { config.SetConfigForTesting(config.LocalConfig{ Logins: []config.Login{{ Name: "testLogin", URL: "https://gitea.example.com", Token: "test-token", User: "testUser", Default: true, }}, }) t.Cleanup(func() { config.SetConfigForTesting(config.LocalConfig{}) }) tests := []struct { name string args []string errContains string }{ { name: "no arguments", args: []string{}, errContains: "parent index and child index are required", }, { name: "missing child index", args: []string{"1"}, errContains: "parent index and child index are required", }, { name: "non-numeric parent index", args: []string{"abc", "2"}, errContains: "", }, } for _, tt := range tests { t.Run(tt.name, func(t *testing.T) { cmd := CmdStackPush args := append([]string{"push"}, tt.args...) args = append(args, "--login", "testLogin", "--repo", "user/repo") err := cmd.Run(context.Background(), args) assert.Error(t, err) if tt.errContains != "" { assert.Contains(t, err.Error(), tt.errContains) } }) } }