Skip to content

Commit

Permalink
updates
Browse files Browse the repository at this point in the history
  • Loading branch information
sgalsaleh committed Jul 14, 2023
1 parent 6fb35a8 commit be6cd11
Show file tree
Hide file tree
Showing 2 changed files with 107 additions and 72 deletions.
136 changes: 65 additions & 71 deletions pkg/handlers/app.go
Original file line number Diff line number Diff line change
Expand Up @@ -42,41 +42,39 @@ type AppRelease struct {
}

func GetCurrentAppInfo(w http.ResponseWriter, r *http.Request) {
if store.GetStore().IsDevLicense() {
isMockEnabled, err := mock.MustGetMock().IsMockEnabled(r.Context(), store.GetStore().GetLicense())
isMockEnabled, err := mock.MustGetMock().IsMockEnabled(r.Context(), store.GetStore().GetLicense())
if err != nil {
logger.Errorf("failed to check if mock is enabled: %v", err)
w.WriteHeader(http.StatusInternalServerError)
return
}

if isMockEnabled {
response := GetCurrentAppInfoResponse{
AppSlug: store.GetStore().GetAppSlug(),
AppName: store.GetStore().GetAppName(),
}

mockCurrentRelease, err := mock.MustGetMock().GetCurrentRelease(r.Context())
if err != nil {
logger.Errorf("failed to check if mock is enabled: %v", err)
logger.Errorf("failed to get mock current release: %v", err)
w.WriteHeader(http.StatusInternalServerError)
return
}
if mockCurrentRelease != nil {
response.CurrentRelease = mockReleaseToAppRelease(*mockCurrentRelease)
}

if isMockEnabled {
response := GetCurrentAppInfoResponse{
AppSlug: store.GetStore().GetAppSlug(),
AppName: store.GetStore().GetAppName(),
}

mockCurrentRelease, err := mock.MustGetMock().GetCurrentRelease(r.Context())
if err != nil {
logger.Errorf("failed to get mock current release: %v", err)
w.WriteHeader(http.StatusInternalServerError)
return
}
if mockCurrentRelease != nil {
response.CurrentRelease = mockReleaseToAppRelease(*mockCurrentRelease)
}

mockHelmChartURL, err := mock.MustGetMock().GetHelmChartURL(r.Context())
if err != nil {
logger.Errorf("failed to get mock helm chart url: %v", err)
w.WriteHeader(http.StatusInternalServerError)
return
}
response.HelmChartURL = mockHelmChartURL

JSON(w, http.StatusOK, response)
mockHelmChartURL, err := mock.MustGetMock().GetHelmChartURL(r.Context())
if err != nil {
logger.Errorf("failed to get mock helm chart url: %v", err)
w.WriteHeader(http.StatusInternalServerError)
return
}
response.HelmChartURL = mockHelmChartURL

JSON(w, http.StatusOK, response)
return
}

response := GetCurrentAppInfoResponse{
Expand Down Expand Up @@ -108,34 +106,32 @@ func GetCurrentAppInfo(w http.ResponseWriter, r *http.Request) {
}

func GetAppUpdates(w http.ResponseWriter, r *http.Request) {
if store.GetStore().IsDevLicense() {
isMockEnabled, err := mock.MustGetMock().IsMockEnabled(r.Context(), store.GetStore().GetLicense())
isMockEnabled, err := mock.MustGetMock().IsMockEnabled(r.Context(), store.GetStore().GetLicense())
if err != nil {
logger.Errorf("failed to check if mock is enabled: %v", err)
w.WriteHeader(http.StatusInternalServerError)
return
}

if isMockEnabled {
mockAvailableReleases, err := mock.MustGetMock().GetAvailableReleases(r.Context())
if err != nil {
logger.Errorf("failed to check if mock is enabled: %v", err)
logger.Errorf("failed to get available mock releases: %v", err)
w.WriteHeader(http.StatusInternalServerError)
return
}

if isMockEnabled {
mockAvailableReleases, err := mock.MustGetMock().GetAvailableReleases(r.Context())
if err != nil {
logger.Errorf("failed to get available mock releases: %v", err)
w.WriteHeader(http.StatusInternalServerError)
return
}

response := []upstreamtypes.ChannelRelease{}
for _, mockRelease := range mockAvailableReleases {
response = append(response, upstreamtypes.ChannelRelease{
VersionLabel: mockRelease.VersionLabel,
CreatedAt: mockRelease.CreatedAt,
ReleaseNotes: mockRelease.ReleaseNotes,
})
}

JSON(w, http.StatusOK, response)
return
response := []upstreamtypes.ChannelRelease{}
for _, mockRelease := range mockAvailableReleases {
response = append(response, upstreamtypes.ChannelRelease{
VersionLabel: mockRelease.VersionLabel,
CreatedAt: mockRelease.CreatedAt,
ReleaseNotes: mockRelease.ReleaseNotes,
})
}

JSON(w, http.StatusOK, response)
return
}

license := store.GetStore().GetLicense()
Expand Down Expand Up @@ -170,33 +166,31 @@ func GetAppUpdates(w http.ResponseWriter, r *http.Request) {
}

func GetAppHistory(w http.ResponseWriter, r *http.Request) {
if store.GetStore().IsDevLicense() {
isMockEnabled, err := mock.MustGetMock().IsMockEnabled(r.Context(), store.GetStore().GetLicense())
isMockEnabled, err := mock.MustGetMock().IsMockEnabled(r.Context(), store.GetStore().GetLicense())
if err != nil {
logger.Errorf("failed to check if mock is enabled: %v", err)
w.WriteHeader(http.StatusInternalServerError)
return
}

if isMockEnabled {
mockReleases, err := mock.MustGetMock().GetDeployedReleases(r.Context())
if err != nil {
logger.Errorf("failed to check if mock is enabled: %v", err)
logger.Errorf("failed to get mock releases: %v", err)
w.WriteHeader(http.StatusInternalServerError)
return
}

if isMockEnabled {
mockReleases, err := mock.MustGetMock().GetDeployedReleases(r.Context())
if err != nil {
logger.Errorf("failed to get mock releases: %v", err)
w.WriteHeader(http.StatusInternalServerError)
return
}

response := GetAppHistoryResponse{
Releases: []AppRelease{},
}
for _, mockRelease := range mockReleases {
appRelease := mockReleaseToAppRelease(mockRelease)
response.Releases = append(response.Releases, appRelease)
}

JSON(w, http.StatusOK, response)
return
response := GetAppHistoryResponse{
Releases: []AppRelease{},
}
for _, mockRelease := range mockReleases {
appRelease := mockReleaseToAppRelease(mockRelease)
response.Releases = append(response.Releases, appRelease)
}

JSON(w, http.StatusOK, response)
return
}

if !helm.IsHelmManaged() {
Expand Down
43 changes: 42 additions & 1 deletion pkg/mock/mock_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@ import (
"testing"

"github.com/pmezard/go-difflib/difflib"
kotsv1beta1 "github.com/replicatedhq/kots/kotskinds/apis/kots/v1beta1"
"github.com/stretchr/testify/require"
"gopkg.in/yaml.v2"
corev1 "k8s.io/api/core/v1"
Expand All @@ -25,9 +26,13 @@ func TestMock_IsMockEnabled(t *testing.T) {
clientset kubernetes.Interface
namespace string
}
type args struct {
license *kotsv1beta1.License
}
tests := []struct {
name string
fields fields
args args
want bool
wantErr bool
}{
Expand Down Expand Up @@ -59,15 +64,51 @@ func TestMock_IsMockEnabled(t *testing.T) {
}),
namespace: "default",
},
args: args{
license: &kotsv1beta1.License{
Spec: kotsv1beta1.LicenseSpec{
LicenseType: "dev",
},
},
},
want: true,
wantErr: false,
},
{
name: "not enabled because not a dev license",
fields: fields{
clientset: fake.NewSimpleClientset(&corev1.SecretList{
TypeMeta: metav1.TypeMeta{},
ListMeta: metav1.ListMeta{},
Items: []corev1.Secret{{
TypeMeta: metav1.TypeMeta{},
ObjectMeta: metav1.ObjectMeta{
Name: replicatedSecretName,
Namespace: "default",
},
Data: map[string][]byte{
replicatedMockEnabledKey: []byte("true"),
},
}},
}),
namespace: "default",
},
args: args{
license: &kotsv1beta1.License{
Spec: kotsv1beta1.LicenseSpec{
LicenseType: "paid",
},
},
},
want: false,
wantErr: false,
},
}
for _, tt := range tests {
t.Run(tt.name, func(t *testing.T) {
InitMock(tt.fields.clientset, tt.fields.namespace)

got, err := MustGetMock().IsMockEnabled(context.Background(), nil)
got, err := MustGetMock().IsMockEnabled(context.Background(), tt.args.license)
if (err != nil) != tt.wantErr {
t.Errorf("Mock.IsMockEnabled() error = %v, wantErr %v", err, tt.wantErr)
return
Expand Down

0 comments on commit be6cd11

Please sign in to comment.