| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- package update
- import (
- "context"
- "testing"
- "github.com/stretchr/testify/require"
- )
- func TestCheckForUpdate_Old(t *testing.T) {
- info, err := Check(t.Context(), "v0.10.0", testClient{"v0.11.0"})
- require.NoError(t, err)
- require.NotNil(t, info)
- require.True(t, info.Available())
- }
- func TestCheckForUpdate_Beta(t *testing.T) {
- t.Run("current is stable", func(t *testing.T) {
- info, err := Check(t.Context(), "v0.10.0", testClient{"v0.11.0-beta.1"})
- require.NoError(t, err)
- require.NotNil(t, info)
- require.False(t, info.Available())
- })
- t.Run("current is also beta", func(t *testing.T) {
- info, err := Check(t.Context(), "v0.11.0-beta.1", testClient{"v0.11.0-beta.2"})
- require.NoError(t, err)
- require.NotNil(t, info)
- require.True(t, info.Available())
- })
- t.Run("current is beta, latest isn't", func(t *testing.T) {
- info, err := Check(t.Context(), "v0.11.0-beta.1", testClient{"v0.11.0"})
- require.NoError(t, err)
- require.NotNil(t, info)
- require.True(t, info.Available())
- })
- }
- type testClient struct{ tag string }
- // Latest implements Client.
- func (t testClient) Latest(ctx context.Context) (*Release, error) {
- return &Release{
- TagName: t.tag,
- HTMLURL: "https://example.org",
- }, nil
- }
|