blob: 1787d172b86a90c785c557d409fe39211a342715 [file] [log] [blame]
package checks
import (
"testing"
"time"
"github.com/stretchr/testify/require"
"go.skia.org/infra/go/testutils/unittest"
"go.skia.org/infra/npm-audit-mirror/go/types"
)
var (
publishAgeCheckTests = []struct {
publishAge time.Duration
checkPassed bool
name string
}{
{
publishAge: publishTimeCuttoff + time.Hour,
checkPassed: true,
name: "Publish age is 1 hour more than the cutoff time",
},
{
publishAge: publishTimeCuttoff,
checkPassed: true,
name: "Publish age is the same as the cutoff time",
},
{
publishAge: publishTimeCuttoff - time.Hour,
checkPassed: false,
name: "Publish age is 1 hour less than the cutoff time",
},
{
publishAge: time.Hour,
checkPassed: false,
name: "Publish age is only 1 hour ago",
},
}
)
func TestPerformPublishAgeCheck_PackageExists(t *testing.T) {
unittest.SmallTest(t)
pac := PublishAgeCheck{}
testPackageVersion := "1.1.0"
for _, test := range publishAgeCheckTests {
publishTime := time.Now().Add(-test.publishAge)
npm := &types.NpmPackage{
Time: map[string]string{
testPackageVersion: publishTime.Format(time.RFC3339),
},
}
checkPassed, result, err := pac.PerformCheck("test-package", testPackageVersion, npm)
require.NoError(t, err, test.name)
require.Equal(t, test.checkPassed, checkPassed, test.name)
if checkPassed {
require.Empty(t, result, test.name)
} else {
require.NotEmpty(t, result, test.name)
}
}
}
func TestPerformPublishAgeCheck_PackageDoesNotExist(t *testing.T) {
unittest.SmallTest(t)
pac := PublishAgeCheck{}
testPackageVersion := "1.1.0"
for _, test := range publishAgeCheckTests {
publishTime := time.Now().Add(-test.publishAge)
npm := &types.NpmPackage{
Time: map[string]string{
testPackageVersion: publishTime.Format(time.RFC3339),
},
}
checkPassed, result, err := pac.PerformCheck("test-package", "does-not-exist", npm)
require.Error(t, err, test.name)
require.False(t, checkPassed, test.name)
require.Empty(t, result, test.name)
}
}