2021-06-09 12:39:38 +01:00
|
|
|
// Copyright (C) 2021 Storj Labs, Inc.
|
|
|
|
// See LICENSE for copying information.
|
|
|
|
|
|
|
|
package uitest
|
|
|
|
|
|
|
|
import (
|
|
|
|
"os"
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
"github.com/go-rod/rod"
|
2021-10-14 12:27:03 +01:00
|
|
|
"github.com/spacemonkeygo/monkit/v3"
|
2021-06-09 12:39:38 +01:00
|
|
|
"go.uber.org/zap"
|
|
|
|
|
|
|
|
"storj.io/common/testcontext"
|
|
|
|
"storj.io/storj/private/testplanet"
|
|
|
|
"storj.io/storj/satellite"
|
|
|
|
)
|
|
|
|
|
2021-10-14 12:27:03 +01:00
|
|
|
var mon = monkit.Package()
|
|
|
|
|
2021-06-09 12:39:38 +01:00
|
|
|
// Test defines common services for uitests.
|
|
|
|
type Test func(t *testing.T, ctx *testcontext.Context, planet *testplanet.Planet, browser *rod.Browser)
|
|
|
|
|
|
|
|
type zapWriter struct {
|
|
|
|
*zap.Logger
|
|
|
|
}
|
|
|
|
|
|
|
|
func (log zapWriter) Write(data []byte) (int, error) {
|
|
|
|
log.Logger.Info(string(data))
|
|
|
|
return len(data), nil
|
|
|
|
}
|
|
|
|
|
2021-11-12 08:46:09 +00:00
|
|
|
func configureSatellite(log *zap.Logger, index int, config *satellite.Config) {
|
|
|
|
if dir := os.Getenv("STORJ_TEST_SATELLITE_WEB"); dir != "" {
|
|
|
|
config.Console.StaticDir = dir
|
|
|
|
}
|
|
|
|
config.Console.CouponCodeBillingUIEnabled = true
|
|
|
|
}
|
|
|
|
|
2021-06-09 12:39:38 +01:00
|
|
|
// Run starts a new UI test.
|
|
|
|
func Run(t *testing.T, test Test) {
|
|
|
|
testplanet.Run(t, testplanet.Config{
|
|
|
|
SatelliteCount: 1, StorageNodeCount: 4, UplinkCount: 1,
|
|
|
|
Reconfigure: testplanet.Reconfigure{
|
2021-11-12 08:46:09 +00:00
|
|
|
Satellite: configureSatellite,
|
2021-06-09 12:39:38 +01:00
|
|
|
},
|
2021-11-12 08:46:09 +00:00
|
|
|
NonParallel: true,
|
2021-06-09 12:39:38 +01:00
|
|
|
}, func(t *testing.T, ctx *testcontext.Context, planet *testplanet.Planet) {
|
2021-11-12 11:02:55 +00:00
|
|
|
Browser(t, ctx, planet, func(browser *rod.Browser) {
|
2021-10-12 14:20:23 +01:00
|
|
|
test(t, ctx, planet, browser)
|
|
|
|
})
|
2021-06-09 12:39:38 +01:00
|
|
|
})
|
|
|
|
}
|