Skip to content
This repository has been archived by the owner on Mar 24, 2023. It is now read-only.

Commit

Permalink
fall back to appslug if other release name sources are unavailable
Browse files Browse the repository at this point in the history
  • Loading branch information
laverya committed Mar 26, 2019
1 parent bca55d2 commit 7b482e6
Show file tree
Hide file tree
Showing 2 changed files with 102 additions and 0 deletions.
4 changes: 4 additions & 0 deletions pkg/api/spec.go
Original file line number Diff line number Diff line change
Expand Up @@ -103,6 +103,10 @@ func (r ReleaseMetadata) ReleaseName() string {
releaseName = r.ShipAppMetadata.Name
}

if releaseName == "" && r.AppSlug != "" {
releaseName = r.AppSlug
}

if len(releaseName) == 0 {
return "ship"
}
Expand Down
98 changes: 98 additions & 0 deletions pkg/api/spec_test.go
Original file line number Diff line number Diff line change
@@ -0,0 +1,98 @@
package api

import (
"testing"

"github.com/stretchr/testify/require"
)

func TestReleaseMetadata_ReleaseName(t *testing.T) {
tests := []struct {
name string
metadata ReleaseMetadata
want string
}{
{
name: "basic",
metadata: ReleaseMetadata{},
want: "ship",
},
{
name: "channelName",
metadata: ReleaseMetadata{
ChannelName: "channel name here",
},
want: "channel-name-here",
},
{
name: "metadataName",
metadata: ReleaseMetadata{
ShipAppMetadata: ShipAppMetadata{
Name: "metadata name here",
},
},
want: "metadata-name-here",
},
{
name: "appSlug",
metadata: ReleaseMetadata{
AppSlug: "app slug here",
},
want: "app-slug-here",
},
{
name: "uppercase",
metadata: ReleaseMetadata{
ShipAppMetadata: ShipAppMetadata{
Name: "UPPERCASE",
},
},
want: "uppercase",
},
{
name: "specials",
metadata: ReleaseMetadata{
ShipAppMetadata: ShipAppMetadata{
Name: "special.characters!aren't+allowed",
},
},
want: "special-characters-aren-t-allowed",
},
{
name: "metadata name overrides channel name",
metadata: ReleaseMetadata{
ShipAppMetadata: ShipAppMetadata{
Name: "metadata",
},
ChannelName: "channel",
},
want: "metadata",
},
{
name: "channel name overrides app slug",
metadata: ReleaseMetadata{
AppSlug: "appslug",
ChannelName: "channel",
},
want: "channel",
},
{
name: "metadata name overrides app slug",
metadata: ReleaseMetadata{
ShipAppMetadata: ShipAppMetadata{
Name: "metadata",
},
AppSlug: "appslug",
},
want: "metadata",
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
req := require.New(t)

got := tt.metadata.ReleaseName()
req.Equal(tt.want, got)
})
}
}

0 comments on commit 7b482e6

Please sign in to comment.