Skip to content

Commit 9c6d24d

Browse files
authored
GT-201 Rename View improvements (#438)
1 parent 3652706 commit 9c6d24d

File tree

5 files changed

+53
-32
lines changed

5 files changed

+53
-32
lines changed

test/client_test.go

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,35 @@ func isK8S() bool {
6060
return os.Getenv("TEST_MODE_K8S") == "k8s"
6161
}
6262

63+
func skipNoCluster(c driver.Client, t *testing.T) {
64+
_, err := c.Cluster(nil)
65+
if driver.IsPreconditionFailed(err) {
66+
t.Skipf("Not a cluster")
67+
} else if err != nil {
68+
t.Fatalf("Failed to get cluster: %s", describe(err))
69+
}
70+
}
71+
72+
func skipNoSingle(c driver.Client, t *testing.T) {
73+
_, err := c.Cluster(nil)
74+
if driver.IsPreconditionFailed(err) {
75+
// this is a single server
76+
return
77+
} else if err != nil {
78+
t.Fatalf("Failed to get cluster: %s", describe(err))
79+
}
80+
t.Skipf("Not a single server")
81+
}
82+
83+
func skipNoEnterprise(t *testing.T) {
84+
c := createClientFromEnv(t, true)
85+
if v, err := c.Version(nil); err != nil {
86+
t.Errorf("Failed to get version: %s", describe(err))
87+
} else if !v.IsEnterprise() {
88+
t.Skipf("Enterprise only")
89+
}
90+
}
91+
6392
// skipBetweenVersion skips the test if the current server version is less than
6493
// the min version or higher/equal max version
6594
func skipBetweenVersion(c driver.Client, minVersion, maxVersion driver.Version, t *testing.T) driver.VersionInfo {

test/collection_test.go

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -35,15 +35,6 @@ import (
3535
driver "github.com/arangodb/go-driver"
3636
)
3737

38-
func skipNoCluster(c driver.Client, t *testing.T) {
39-
_, err := c.Cluster(nil)
40-
if driver.IsPreconditionFailed(err) {
41-
t.Skipf("Not a cluster")
42-
} else if err != nil {
43-
t.Fatalf("Failed to get cluster: %s", describe(err))
44-
}
45-
}
46-
4738
// ensureCollection is a helper to check if a collection exists and create if if needed.
4839
// It will fail the test when an error occurs.
4940
func ensureCollection(ctx context.Context, db driver.Database, name string, options *driver.CreateCollectionOptions, t testEnv) driver.Collection {

test/util.go

Lines changed: 0 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -122,15 +122,6 @@ func getTestMode() string {
122122
return strings.TrimSpace(os.Getenv("TEST_MODE"))
123123
}
124124

125-
func skipNoEnterprise(t *testing.T) {
126-
c := createClientFromEnv(t, true)
127-
if v, err := c.Version(nil); err != nil {
128-
t.Errorf("Failed to get version: %s", describe(err))
129-
} else if !v.IsEnterprise() {
130-
t.Skipf("Enterprise only")
131-
}
132-
}
133-
134125
// waitForDataPropagation - waits for data propagation in cluster mode
135126
func waitForDataPropagation() {
136127
if getTestMode() == testModeCluster {

test/view_test.go

Lines changed: 23 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -394,13 +394,15 @@ func TestGetArangoSearchViews(t *testing.T) {
394394
}
395395
}
396396

397-
// TestRenameAndRemoveArangoSearchView creates an arangosearch view and then removes it.
397+
// TestRenameAndRemoveArangoSearchView creates an arangosearch view, renames it and then removes it.
398398
func TestRenameAndRemoveArangoSearchView(t *testing.T) {
399399
ctx := context.Background()
400400
c := createClientFromEnv(t, true)
401401
skipBelowVersion(c, "3.4", t)
402+
402403
db := ensureDatabase(ctx, c, "view_test", nil, t)
403404
name := "test_rename_view"
405+
renamedView := "test_rename_view_new"
404406
v, err := db.CreateArangoSearchView(ctx, name, nil)
405407
require.NoError(t, err)
406408

@@ -409,16 +411,19 @@ func TestRenameAndRemoveArangoSearchView(t *testing.T) {
409411
require.NoError(t, err)
410412
require.True(t, found)
411413

412-
// Rename view
413-
newName := "test_rename_view_new"
414-
err = v.Rename(ctx, newName)
415-
require.NoError(t, err)
416-
require.Equal(t, newName, v.Name())
414+
t.Run("rename view - single server only", func(t *testing.T) {
415+
skipNoSingle(c, t)
417416

418-
// Renamed View must exist
419-
found, err = db.ViewExists(ctx, newName)
420-
require.NoError(t, err)
421-
require.True(t, found)
417+
// Rename view
418+
err = v.Rename(ctx, renamedView)
419+
require.NoError(t, err)
420+
require.Equal(t, renamedView, v.Name())
421+
422+
// Renamed View must exist
423+
found, err = db.ViewExists(ctx, renamedView)
424+
require.NoError(t, err)
425+
require.True(t, found)
426+
})
422427

423428
// Now remove it
424429
err = v.Remove(ctx)
@@ -429,9 +434,14 @@ func TestRenameAndRemoveArangoSearchView(t *testing.T) {
429434
require.NoError(t, err)
430435
require.False(t, found)
431436

432-
found, err = db.ViewExists(ctx, newName)
433-
require.NoError(t, err)
434-
require.False(t, found)
437+
t.Run("ensure renamed view not exist - single server only", func(t *testing.T) {
438+
skipNoSingle(c, t)
439+
440+
found, err = db.ViewExists(ctx, renamedView)
441+
require.NoError(t, err)
442+
require.False(t, found)
443+
})
444+
435445
}
436446

437447
// TestUseArangoSearchView tries to create a view and actually use it in

view.go

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ type View interface {
4646
// Database returns the database containing the view.
4747
Database() Database
4848

49-
// Rename renames the view.
49+
// Rename renames the view (SINGLE server only).
5050
Rename(ctx context.Context, newName string) error
5151

5252
// Remove removes the entire view.

0 commit comments

Comments
 (0)