storj/integration/ui/satellite/onboarding_wizard_test.go
nadimhq 60717e356d
UItests: added an onboarding wizard test
These tests are used to check that newly created accounts are able to use the built-in wizard to introduce new users on how to get started using STORJ DCS during the onboarding phase
2021-07-06 07:36:42 -04:00

66 lines
2.6 KiB
Go

// Copyright (C) 2021 Storj Labs, Inc.
// See LICENSE for copying information.
package satellite
import (
"testing"
"github.com/go-rod/rod"
"github.com/go-rod/rod/lib/input"
"github.com/stretchr/testify/require"
"storj.io/common/testcontext"
"storj.io/storj/integration/ui/uitest"
"storj.io/storj/private/testplanet"
)
func TestOnboardingWizard(t *testing.T) {
uitest.Run(t, func(t *testing.T, ctx *testcontext.Context, planet *testplanet.Planet, browser *rod.Browser) {
signupPageURL := planet.Satellites[0].ConsoleURL() + "/signup"
fullName := "John Doe"
emailAddress := "test@email.com"
password := "qazwsx123"
page := browser.MustPage(signupPageURL)
page.MustSetViewport(1350, 600, 1, false)
// First time User signup
page.MustElement(".headerless-input").MustInput(fullName)
page.MustElement("[placeholder=\"example@email.com\"]").MustInput(emailAddress)
page.MustElement("[placeholder=\"Enter Password\"]").MustInput(password)
page.MustElement("[placeholder=\"Retype Password\"]").MustInput(password)
page.MustElement(".checkmark").MustClick()
page.Keyboard.MustPress(input.Enter)
confirmAccountEmailMessage := page.MustElement(".register-success-area__form-container__title").MustText()
require.Contains(t, confirmAccountEmailMessage, "You're almost there!")
// Login as first time User
page.MustElement(".register-area__content-area__login-container__link").MustClick()
page.MustElement(".headerless-input").MustInput(emailAddress)
page.MustElement("[type=password]").MustInput(password)
page.Keyboard.MustPress(input.Enter)
// Checking out onboarding process for "Rclone" and other "Integrations"
wait := page.MustWaitOpen()
page.MustElementX("//a[text()=' Continue ']").MustClick()
syncFilesWithRclonePage := wait()
require.Equal(t, "https://docs.storj.io/how-tos/sync-files-with-rclone", syncFilesWithRclonePage.MustInfo().URL)
syncFilesWithRclonePage.MustClose()
wait2 := page.MustWaitOpen()
page.MustElement(".overview-area__integrations-button").MustClick()
storjOtherIntegrationsPage := wait2()
storjIntegrationsTitle := storjOtherIntegrationsPage.MustElement(".blog-heading").MustText()
require.Contains(t, storjIntegrationsTitle, "Integrations")
featuredIntegrationsSubHeader := storjOtherIntegrationsPage.MustElement(".marketplace-content-title:nth-child(1)").MustText()
require.Contains(t, featuredIntegrationsSubHeader, "Featured Integrations")
storjOtherIntegrationsPage.MustClose()
page.MustElement(".overview-area__skip-button").MustClick()
dashboardTitle := page.MustElement(".dashboard-area__header-wrapper__title").MustText()
require.Contains(t, dashboardTitle, "Dashboard")
})
}