github.com/theishshah/operator-sdk@v0.6.0/pkg/scaffold/cr_test.go (about) 1 // Copyright 2018 The Operator-SDK Authors 2 // 3 // Licensed under the Apache License, Version 2.0 (the "License"); 4 // you may not use this file except in compliance with the License. 5 // You may obtain a copy of the License at 6 // 7 // http://www.apache.org/licenses/LICENSE-2.0 8 // 9 // Unless required by applicable law or agreed to in writing, software 10 // distributed under the License is distributed on an "AS IS" BASIS, 11 // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. 12 // See the License for the specific language governing permissions and 13 // limitations under the License. 14 15 package scaffold 16 17 import ( 18 "testing" 19 20 "github.com/operator-framework/operator-sdk/internal/util/diffutil" 21 ) 22 23 func TestCR(t *testing.T) { 24 r, err := NewResource(appApiVersion, appKind) 25 if err != nil { 26 t.Fatal(err) 27 } 28 s, buf := setupScaffoldAndWriter() 29 err = s.Execute(appConfig, &CR{Resource: r}) 30 if err != nil { 31 t.Fatalf("Failed to execute the scaffold: (%v)", err) 32 } 33 34 if crExp != buf.String() { 35 diffs := diffutil.Diff(crExp, buf.String()) 36 t.Fatalf("Expected vs actual differs.\n%v", diffs) 37 } 38 } 39 40 func TestCRCustomSpec(t *testing.T) { 41 r, err := NewResource(appApiVersion, appKind) 42 if err != nil { 43 t.Fatal(err) 44 } 45 s, buf := setupScaffoldAndWriter() 46 err = s.Execute(appConfig, &CR{ 47 Resource: r, 48 Spec: "# Custom spec here\ncustomSize: 6", 49 }) 50 if err != nil { 51 t.Fatalf("Failed to execute the scaffold: (%v)", err) 52 } 53 54 if crCustomSpecExp != buf.String() { 55 diffs := diffutil.Diff(crCustomSpecExp, buf.String()) 56 t.Fatalf("Expected vs actual differs.\n%v", diffs) 57 } 58 } 59 60 const crExp = `apiVersion: app.example.com/v1alpha1 61 kind: AppService 62 metadata: 63 name: example-appservice 64 spec: 65 # Add fields here 66 size: 3 67 ` 68 69 const crCustomSpecExp = `apiVersion: app.example.com/v1alpha1 70 kind: AppService 71 metadata: 72 name: example-appservice 73 spec: 74 # Custom spec here 75 customSize: 6 76 `