Commit d89d7e56 authored by Etienne Baqué's avatar Etienne Baqué
Browse files

Added some test for create-from-file

parent d21c6f0f
Loading
Loading
Loading
Loading
+44 −0
Original line number Diff line number Diff line
@@ -38,6 +38,26 @@ func TestCreate(t *testing.T) {
	}
}

func TestCreateFromFile(t *testing.T) {
	logger, hook := testlog.NewNullLogger()

	mhc := &gitlab.MockHTTPClient{}
	mhc.On("Do", mock.Anything).Return(testdata.Responses[testdata.ResponseCreateReleaseSuccess](), nil).Once()

	defer mhc.AssertExpectations(t)

	createFromFile, ctx := newTestCreateFromFile(t, logrus.NewEntry(logger), mhc)
	require.Equal(t, "create-from-file", createFromFile.Name)
	require.Len(t, createFromFile.Flags, 9)

	err := createFromFile.Run(ctx)
	require.NoError(t, err)

	for _, entry := range hook.AllEntries() {
		require.Contains(t, []string{"Creating Release...", "file does not exist, using string value for --description", "release created successfully!"}, entry.Message)
	}
}

func TestCreateAssets(t *testing.T) {
	logger, _ := testlog.NewNullLogger()

@@ -339,3 +359,27 @@ func newTestCreate(t *testing.T, logger logrus.FieldLogger, mhc gitlab.HTTPClien

	return create, ctx
}

func newTestCreateFromFile(t *testing.T, logger logrus.FieldLogger, mhc gitlab.HTTPClient, extraArgs ...string) (*cli.Command, *cli.Context) {
	t.Helper()

	clientFn := func(ctx *cli.Context, log logrus.FieldLogger) (gitlab.HTTPClient, error) {
		return mhc, nil
	}

	args := []string{"create-from-file", "--file", "../testdata/release.yml"}
	args = append(args, extraArgs...)

	app := &cli.App{Writer: io.Discard}
	set := flag.NewFlagSet(t.Name(), 0)
	set.String(flags.ServerURL, "https://gitlab.com", "")
	set.String(flags.JobToken, "token", "")

	err := set.Parse(args)
	require.NoError(t, err)

	create := CreateFromFile(logger, clientFn)
	ctx := cli.NewContext(app, set, nil)

	return create, ctx
}