mirror of https://github.com/go-gitea/gitea.git
You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
90 lines
1.7 KiB
90 lines
1.7 KiB
// Copyright 2022 The Gitea Authors. All rights reserved. |
|
// SPDX-License-Identifier: MIT |
|
|
|
package actions |
|
|
|
import ( |
|
"math" |
|
"testing" |
|
"time" |
|
|
|
"code.gitea.io/gitea/modules/timeutil" |
|
|
|
"github.com/stretchr/testify/assert" |
|
"github.com/stretchr/testify/require" |
|
) |
|
|
|
func TestLogIndexes_ToDB(t *testing.T) { |
|
tests := []struct { |
|
indexes LogIndexes |
|
}{ |
|
{ |
|
indexes: []int64{1, 2, 0, -1, -2, math.MaxInt64, math.MinInt64}, |
|
}, |
|
} |
|
for _, tt := range tests { |
|
t.Run("", func(t *testing.T) { |
|
got, err := tt.indexes.ToDB() |
|
require.NoError(t, err) |
|
|
|
indexes := LogIndexes{} |
|
require.NoError(t, indexes.FromDB(got)) |
|
|
|
assert.Equal(t, tt.indexes, indexes) |
|
}) |
|
} |
|
} |
|
|
|
func Test_calculateDuration(t *testing.T) { |
|
oldTimeSince := timeSince |
|
defer func() { |
|
timeSince = oldTimeSince |
|
}() |
|
|
|
timeSince = func(t time.Time) time.Duration { |
|
return timeutil.TimeStamp(1000).AsTime().Sub(t) |
|
} |
|
type args struct { |
|
started timeutil.TimeStamp |
|
stopped timeutil.TimeStamp |
|
status Status |
|
} |
|
tests := []struct { |
|
name string |
|
args args |
|
want time.Duration |
|
}{ |
|
{ |
|
name: "unknown", |
|
args: args{ |
|
started: 0, |
|
stopped: 0, |
|
status: StatusUnknown, |
|
}, |
|
want: 0, |
|
}, |
|
{ |
|
name: "running", |
|
args: args{ |
|
started: 500, |
|
stopped: 0, |
|
status: StatusRunning, |
|
}, |
|
want: 500 * time.Second, |
|
}, |
|
{ |
|
name: "done", |
|
args: args{ |
|
started: 500, |
|
stopped: 600, |
|
status: StatusSuccess, |
|
}, |
|
want: 100 * time.Second, |
|
}, |
|
} |
|
for _, tt := range tests { |
|
t.Run(tt.name, func(t *testing.T) { |
|
assert.Equalf(t, tt.want, calculateDuration(tt.args.started, tt.args.stopped, tt.args.status), "calculateDuration(%v, %v, %v)", tt.args.started, tt.args.stopped, tt.args.status) |
|
}) |
|
} |
|
}
|
|
|