|
|
|
|
@ -4,6 +4,8 @@
|
|
|
|
|
package cloudplan
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"errors"
|
|
|
|
|
"os"
|
|
|
|
|
"path/filepath"
|
|
|
|
|
"testing"
|
|
|
|
|
|
|
|
|
|
@ -18,7 +20,8 @@ func TestCloud_loadBasic(t *testing.T) {
|
|
|
|
|
Hostname: "app.terraform.io",
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
result, err := LoadSavedPlanBookmark("./testdata/plan-bookmark/bookmark.json")
|
|
|
|
|
file := "./testdata/plan-bookmark/bookmark.json"
|
|
|
|
|
result, err := LoadSavedPlanBookmark(file)
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
@ -28,15 +31,69 @@ func TestCloud_loadBasic(t *testing.T) {
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestCloud_saveBasic(t *testing.T) {
|
|
|
|
|
tmp := t.TempDir()
|
|
|
|
|
bookmarkPath := filepath.Join(tmp, "saved-bookmark.json")
|
|
|
|
|
func TestCloud_loadCheckRunID(t *testing.T) {
|
|
|
|
|
// Run ID must never be empty
|
|
|
|
|
file := "./testdata/plan-bookmark/empty_run_id.json"
|
|
|
|
|
_, err := LoadSavedPlanBookmark(file)
|
|
|
|
|
if !errors.Is(err, ErrInvalidRunID) {
|
|
|
|
|
t.Fatalf("expected %s but got %s", ErrInvalidRunID, err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestCloud_loadCheckHostname(t *testing.T) {
|
|
|
|
|
// Hostname must never be empty
|
|
|
|
|
file := "./testdata/plan-bookmark/empty_hostname.json"
|
|
|
|
|
_, err := LoadSavedPlanBookmark(file)
|
|
|
|
|
if !errors.Is(err, ErrInvalidHostname) {
|
|
|
|
|
t.Fatalf("expected %s but got %s", ErrInvalidHostname, err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestCloud_loadCheckVersionNumberBasic(t *testing.T) {
|
|
|
|
|
// remote_plan_format must be set to 1
|
|
|
|
|
// remote_plan_format and format version number are used interchangeably
|
|
|
|
|
file := "./testdata/plan-bookmark/invalid_version.json"
|
|
|
|
|
_, err := LoadSavedPlanBookmark(file)
|
|
|
|
|
if !errors.Is(err, ErrInvalidRemotePlanFormat) {
|
|
|
|
|
t.Fatalf("expected %s but got %s", ErrInvalidRemotePlanFormat, err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestCloud_saveWhenFileExistsBasic(t *testing.T) {
|
|
|
|
|
tmpDir := t.TempDir()
|
|
|
|
|
tmpFile, err := os.Create(filepath.Join(tmpDir, "saved-bookmark.json"))
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal("File could not be created.", err)
|
|
|
|
|
}
|
|
|
|
|
defer tmpFile.Close()
|
|
|
|
|
|
|
|
|
|
// verify the created path exists
|
|
|
|
|
// os.Stat() wants path to file
|
|
|
|
|
_, error := os.Stat(tmpFile.Name())
|
|
|
|
|
if error != nil {
|
|
|
|
|
t.Fatal("Path to file does not exist.", error)
|
|
|
|
|
} else {
|
|
|
|
|
b := &SavedPlanBookmark{
|
|
|
|
|
RemotePlanFormat: 1,
|
|
|
|
|
RunID: "run-GXfuHMkbyHccAGUg",
|
|
|
|
|
Hostname: "app.terraform.io",
|
|
|
|
|
}
|
|
|
|
|
err := b.Save(tmpFile.Name())
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
func TestCloud_saveWhenFileDoesNotExistBasic(t *testing.T) {
|
|
|
|
|
tmpDir := t.TempDir()
|
|
|
|
|
b := &SavedPlanBookmark{
|
|
|
|
|
RemotePlanFormat: 1,
|
|
|
|
|
RunID: "run-GXfuHMkbyHccAGUg",
|
|
|
|
|
Hostname: "app.terraform.io",
|
|
|
|
|
}
|
|
|
|
|
|
|
|
|
|
b.Save(bookmarkPath)
|
|
|
|
|
err := b.Save(filepath.Join(tmpDir, "create-new-file.txt"))
|
|
|
|
|
if err != nil {
|
|
|
|
|
t.Fatal(err)
|
|
|
|
|
}
|
|
|
|
|
}
|
|
|
|
|
|