func TestNewUserSelectedOTPLDeploySpecs(t *testing.T) { for _, test := range nusodsTests { state := sous.NewState() if test.Manifest != nil { state.Manifests.MustAdd(test.Manifest) } state.Defs.Clusters = test.Clusters ds, err := newUserSelectedOTPLDeploySpecs( DetectedOTPLDeploySpecs{test.Detected}, test.TSL, &test.Flags, state, ) if err != nil { if test.ExpectedErr == "" { t.Error(err) continue } actualErr := err.Error() if actualErr != test.ExpectedErr { t.Errorf("got error %q; want %q", actualErr, test.ExpectedErr) } continue } if err == nil && test.ExpectedErr != "" { t.Errorf("got nil; want error %q", test.ExpectedErr) continue } actualLen := len(ds.DeploySpecs) expectedLen := len(test.ExpectedDeploySpecs) if actualLen != expectedLen { t.Errorf("got %d deploy specs; want %d", actualLen, expectedLen) } } }
func TestNewTargetManifest_Existing(t *testing.T) { detected := UserSelectedOTPLDeploySpecs{} sl := sous.MustParseSourceLocation("github.com/user/project") flavor := "some-flavor" mid := sous.ManifestID{Source: sl, Flavor: flavor} tmid := TargetManifestID(mid) m := &sous.Manifest{Source: sl, Flavor: flavor, Kind: sous.ManifestKindService} s := sous.NewState() s.Manifests.Add(m) tm := newTargetManifest(detected, tmid, s) if tm.Source != sl { t.Errorf("unexpected manifest %q", m) } flaws := tm.Manifest.Validate() if len(flaws) > 0 { t.Errorf("Invalid existing manifest: %#v, flaws were %v", tm.Manifest, flaws) } }
func TestNewTargetManifest(t *testing.T) { detected := UserSelectedOTPLDeploySpecs{} sl := sous.MustParseSourceLocation("github.com/user/project") flavor := "some-flavor" mid := sous.ManifestID{Source: sl, Flavor: flavor} tmid := TargetManifestID(mid) s := sous.NewState() cls := sous.Clusters{} cls["test"] = &sous.Cluster{ Name: "test", Kind: "singularity", BaseURL: "http://singularity.example.com/", } s.Defs.Clusters = cls tm := newTargetManifest(detected, tmid, s) flaws := tm.Manifest.Validate() if len(flaws) > 0 { t.Errorf("Invalid new manifest: %#v, flaws were %v", tm.Manifest, flaws) } }
} if did != test.ExpectedDID { t.Errorf("got DeployID %q; want %q", did, test.ExpectedDID) } } } var updateStateTests = []struct { State *sous.State GDM graph.CurrentGDM DID sous.DeployID ExpectedErr string ExpectedNumManifests int }{ { State: sous.NewState(), GDM: graph.CurrentGDM{Deployments: sous.NewDeployments()}, ExpectedErr: "invalid deploy ID (no cluster name)", }, { State: sous.NewState(), GDM: graph.CurrentGDM{Deployments: sous.NewDeployments()}, DID: sous.DeployID{ Cluster: "blah", ManifestID: sous.MustParseManifestID("github.com/user/project"), }, ExpectedErr: `cluster "blah" is not described in defs.yaml`, }, { State: &sous.State{ Defs: sous.Defs{Clusters: sous.Clusters{