...

Source file src/edge-infra.dev/pkg/f8n/warehouse/release/release_test.go

Documentation: edge-infra.dev/pkg/f8n/warehouse/release

     1  package release
     2  
     3  import (
     4  	"context"
     5  	"errors"
     6  	"fmt"
     7  	"os"
     8  	"testing"
     9  
    10  	"github.com/stretchr/testify/assert"
    11  	"gopkg.in/yaml.v3"
    12  
    13  	"edge-infra.dev/pkg/f8n/warehouse/cluster"
    14  	"edge-infra.dev/pkg/f8n/warehouse/oci/layer"
    15  	"edge-infra.dev/pkg/f8n/warehouse/pallet"
    16  	"edge-infra.dev/pkg/lib/build/semver"
    17  )
    18  
    19  func TestMain(m *testing.M) {
    20  	os.Exit(m.Run())
    21  }
    22  
    23  func TestBasicRelease(t *testing.T) {
    24  	currentVersion := "0.20.19"
    25  	l, err := layer.New(layer.Runtime, []byte("hello"))
    26  	if err != nil {
    27  		t.Fatal(err)
    28  	}
    29  	layers := []layer.Layer{l}
    30  	storePallet, err := pallet.Image(pallet.Options{
    31  		Metadata: pallet.Metadata{
    32  			Name: "store",
    33  			Team: "f8n",
    34  			BuildInfo: pallet.BuildInfo{
    35  				Created:  "yesterday",
    36  				Source:   "https://gothub.com/ncrvoyix-swt-retail/edge-infra",
    37  				Revision: "d34db33f",
    38  				Version:  currentVersion,
    39  			},
    40  		},
    41  		ClusterProviders: cluster.BuiltInProviders(),
    42  	}, layers...)
    43  	if err != nil {
    44  		t.Fatal(err)
    45  	}
    46  
    47  	meta := Metadata{
    48  		Vendor:          "NCR",
    49  		Version:         currentVersion,
    50  		ReleaseRegistry: "localhost:21700",
    51  		ReleaseRepo:     "edge-release",
    52  		BuildInfo:       pallet.BuildInfo{},
    53  	}
    54  	rel := New(meta, []pallet.Pallet{storePallet})
    55  
    56  	assert.Equal(t, rel.Metadata.Version, currentVersion)
    57  	for _, relPallet := range rel.Pallets {
    58  		assert.Equal(t, relPallet.Metadata().Version, currentVersion)
    59  	}
    60  }
    61  
    62  func TestBadSemverRelease(t *testing.T) {
    63  	releaser := &Releaser{}
    64  	releaserBytes, _ := os.ReadFile("testdata/bad_semver_release.yaml")
    65  
    66  	err := yaml.Unmarshal(releaserBytes, releaser)
    67  	if err != nil {
    68  		t.Fatal(err)
    69  	}
    70  
    71  	_, err = releaser.BuildRelease(context.Background(), pallet.BuildInfo{})
    72  	if err != nil && errors.Is(err, semver.ErrInvalidSemVer) {
    73  		fmt.Println("successfully caught error", err)
    74  		return
    75  	}
    76  
    77  	t.Fatal("did not catch err")
    78  }
    79  

View as plain text