mirror of
https://codeberg.org/forgejo/forgejo.git
synced 2025-11-02 15:31:03 +00:00
(cherry picked from commit481d813539) address oliverpool comments (cherry picked from commitd8f313f9e2) s/Printf/Print/ (cherry picked from commit6621b04458) do not run initDB within integration tests (cherry picked from commit5a0428ede3) (cherry picked from commitd3ebc9449c) (cherry picked from commit411bc5ac69) (cherry picked from commit9de9a916a6) (cherry picked from commitbffa551ac9)
50 lines
1.1 KiB
Go
50 lines
1.1 KiB
Go
// SPDX-License-Identifier: MIT
|
|
|
|
package integration
|
|
|
|
import (
|
|
"bytes"
|
|
"flag"
|
|
"io"
|
|
"net/url"
|
|
"os"
|
|
"testing"
|
|
|
|
"code.gitea.io/gitea/cmd"
|
|
|
|
"github.com/stretchr/testify/assert"
|
|
"github.com/urfave/cli"
|
|
)
|
|
|
|
func Test_CmdActions(t *testing.T) {
|
|
onGiteaRun(t, func(*testing.T, *url.URL) {
|
|
tests := []struct {
|
|
name string
|
|
args []string
|
|
wantErr bool
|
|
expectedOutput func(string)
|
|
}{
|
|
{"test_registration-token-admin", []string{"actions", "--registration-token-admin"}, false, func(output string) { assert.EqualValues(t, 40, len(output), output) }},
|
|
}
|
|
for _, tt := range tests {
|
|
t.Run(tt.name, func(t *testing.T) {
|
|
realStdout := os.Stdout
|
|
r, w, _ := os.Pipe()
|
|
os.Stdout = w
|
|
|
|
set := flag.NewFlagSet("actions", 0)
|
|
_ = set.Parse(tt.args)
|
|
context := cli.NewContext(&cli.App{Writer: os.Stdout}, set, nil)
|
|
err := cmd.CmdActions.Run(context)
|
|
if (err != nil) != tt.wantErr {
|
|
t.Errorf("CmdActions.Run() error = %v, wantErr %v", err, tt.wantErr)
|
|
}
|
|
w.Close()
|
|
var buf bytes.Buffer
|
|
io.Copy(&buf, r)
|
|
tt.expectedOutput(buf.String())
|
|
os.Stdout = realStdout
|
|
})
|
|
}
|
|
})
|
|
}
|