github.com/kyma-incubator/compass/components/director@v0.0.0-20230623144113-d764f56ff805/internal/domain/subscription/fixtures_test.go (about) 1 package subscription_test 2 3 import ( 4 "fmt" 5 6 "github.com/kyma-incubator/compass/components/director/internal/domain/subscription" 7 8 "github.com/kyma-incubator/compass/components/director/pkg/str" 9 10 "github.com/kyma-incubator/compass/components/director/internal/domain/scenarioassignment" 11 "github.com/kyma-incubator/compass/components/director/internal/domain/subscription/automock" 12 "github.com/kyma-incubator/compass/components/director/internal/model" 13 "github.com/kyma-incubator/compass/components/director/pkg/graphql" 14 ) 15 16 var ( 17 testDescription = "{{display-name}}" 18 testJSONPath = "displayName" 19 testProviderName = "provider-display-name" 20 testURL = "http://valid.url" 21 appInputJSONString = `{"Name":"foo","ProviderName":"compass","Description":"Lorem ipsum","Labels":{"test":["val","val2"]},"HealthCheckURL":"https://foo.bar","Webhooks":[{"Type":"","URL":"webhook1.foo.bar","Auth":null},{"Type":"","URL":"webhook2.foo.bar","Auth":null}],"IntegrationSystemID":"iiiiiiiii-iiii-iiii-iiii-iiiiiiiiiiii"}` 22 ) 23 24 func fixJSONApplicationCreateInput(name string) string { 25 return fmt.Sprintf(`{"name": "%s", "providerName": "%s", "description": "%s", "healthCheckURL": "%s", baseURL:"https://{{subdomain}}.{{region}}.com"}`, name, testProviderName, testDescription, testURL) 26 } 27 28 func fixModelAppTemplateWithAppInputJSON(id, name, appInputJSON string) *model.ApplicationTemplate { 29 out := fixModelApplicationTemplate(id, name) 30 out.ApplicationInputJSON = appInputJSON 31 32 return out 33 } 34 35 func fixModelApplicationTemplate(id, name string) *model.ApplicationTemplate { 36 desc := testDescription 37 out := model.ApplicationTemplate{ 38 ID: id, 39 Name: name, 40 Description: &desc, 41 ApplicationInputJSON: appInputJSONString, 42 Placeholders: fixModelPlaceholders(), 43 Webhooks: []model.Webhook{}, 44 AccessLevel: model.GlobalApplicationTemplateAccessLevel, 45 } 46 47 return &out 48 } 49 50 func fixModelAppTemplateWithPlaceholdersWithAppInputJSON(id, name, appInputJSON string) *model.ApplicationTemplate { 51 out := fixModelApplicationTemplateWithPlaceholders(id, name) 52 out.ApplicationInputJSON = appInputJSON 53 54 return out 55 } 56 57 func fixModelApplicationTemplateWithPlaceholders(id, name string) *model.ApplicationTemplate { 58 desc := testDescription 59 out := model.ApplicationTemplate{ 60 ID: id, 61 Name: name, 62 Description: &desc, 63 ApplicationInputJSON: appInputJSONString, 64 Placeholders: fixModelPlaceholdersFull(), 65 Webhooks: []model.Webhook{}, 66 AccessLevel: model.GlobalApplicationTemplateAccessLevel, 67 } 68 69 return &out 70 } 71 72 func fixModelPlaceholdersFull() []model.ApplicationTemplatePlaceholder { 73 placeholderNameDesc := testDescription 74 placeholderNameJSONPath := "name" 75 placeholderDisplayNameDesc := testDescription 76 placeholderDisplayNameJSONPath := "display-name" 77 return []model.ApplicationTemplatePlaceholder{ 78 { 79 Name: "name", 80 Description: &placeholderNameDesc, 81 JSONPath: &placeholderNameJSONPath, 82 }, 83 { 84 Name: "display-name", 85 Description: &placeholderDisplayNameDesc, 86 JSONPath: &placeholderDisplayNameJSONPath, 87 }, 88 } 89 } 90 91 func fixModelApplicationFromTemplateInputWithPlaceholders(name, subscribedAppName, subdomain, region string) model.ApplicationFromTemplateInput { 92 return model.ApplicationFromTemplateInput{ 93 TemplateName: name, 94 Values: []*model.ApplicationTemplateValueInput{ 95 {Placeholder: "name", Value: subscribedAppName}, 96 {Placeholder: "display-name", Value: subscribedAppName}, 97 {Placeholder: "subdomain", Value: subdomain}, 98 {Placeholder: "region", Value: region}, 99 }, 100 } 101 } 102 103 func fixModelApplication(id, name, appTemplateID string) *model.Application { 104 return &model.Application{ 105 Status: &model.ApplicationStatus{ 106 Condition: model.ApplicationStatusConditionInitial, 107 }, 108 Name: name, 109 BaseEntity: &model.BaseEntity{ID: id}, 110 ApplicationTemplateID: &appTemplateID, 111 } 112 } 113 114 func fixModelRuntime(name string) *model.Runtime { 115 desc := testDescription 116 out := model.Runtime{ 117 Name: name, 118 Description: &desc, 119 } 120 121 return &out 122 } 123 124 func fixModelPlaceholders() []model.ApplicationTemplatePlaceholder { 125 placeholderDesc := testDescription 126 placeholderJSONPath := testJSONPath 127 return []model.ApplicationTemplatePlaceholder{ 128 { 129 Name: "name", 130 Description: &placeholderDesc, 131 JSONPath: &placeholderJSONPath, 132 }, 133 { 134 Name: "display-name", 135 Description: &placeholderDesc, 136 JSONPath: &placeholderJSONPath, 137 }, 138 } 139 } 140 141 func fixModelApplicationFromTemplateInput(name, subscribedAppName, subdomain, region string) model.ApplicationFromTemplateInput { 142 return model.ApplicationFromTemplateInput{ 143 TemplateName: name, 144 Values: []*model.ApplicationTemplateValueInput{ 145 {Placeholder: "name", Value: subscribedAppName}, 146 {Placeholder: "display-name", Value: subscribedAppName}, 147 {Placeholder: "subdomain", Value: subdomain}, 148 {Placeholder: "region", Value: region}, 149 }, 150 } 151 } 152 153 func fixModelApplicationFromTemplateSimplifiedInput(name, subscribedAppName, subdomain, region string) model.ApplicationFromTemplateInput { 154 return model.ApplicationFromTemplateInput{ 155 TemplateName: name, 156 Values: []*model.ApplicationTemplateValueInput{ 157 {Placeholder: "name", Value: subscribedAppName}, 158 {Placeholder: "display-name", Value: subscribedAppName}, 159 }, 160 } 161 } 162 163 func fixGQLApplicationFromTemplateWithPayloadInput(name, subscribedAppName, subdomain, region string) graphql.ApplicationFromTemplateInput { 164 placeholderPayload := "{\"name\":\"subscription-app-name-value\", \"display-name\":\"subscription-app-name-value\"}" 165 166 return graphql.ApplicationFromTemplateInput{ 167 TemplateName: name, 168 PlaceholdersPayload: &placeholderPayload, 169 } 170 } 171 172 func fixGQLApplicationCreateInput(name string) graphql.ApplicationRegisterInput { 173 return graphql.ApplicationRegisterInput{ 174 Name: name, 175 ProviderName: &testProviderName, 176 Description: &testDescription, 177 HealthCheckURL: &testURL, 178 } 179 } 180 181 func fixModelApplicationCreateInput(name string) model.ApplicationRegisterInput { 182 return model.ApplicationRegisterInput{ 183 Name: name, 184 Description: &testDescription, 185 HealthCheckURL: &testURL, 186 } 187 } 188 189 func fixModelApplicationCreateInputWithLabels(name, subscribedSubaccountID string) model.ApplicationRegisterInput { 190 return model.ApplicationRegisterInput{ 191 Name: name, 192 Description: &testDescription, 193 HealthCheckURL: &testURL, 194 LocalTenantID: str.Ptr(consumerTenantID), 195 Labels: map[string]interface{}{ 196 "managed": "false", 197 scenarioassignment.SubaccountIDKey: subscribedSubaccountID, 198 subscription.InstancesLabelKey: 1, 199 }, 200 } 201 } 202 203 func unusedLabelSvc() *automock.LabelService { 204 return &automock.LabelService{} 205 } 206 207 func unusedRuntimeSvc() *automock.RuntimeService { 208 return &automock.RuntimeService{} 209 } 210 211 func unusedRuntimeContextSvc() *automock.RuntimeCtxService { 212 return &automock.RuntimeCtxService{} 213 } 214 215 func unusedUUIDSvc() *automock.UidService { 216 return &automock.UidService{} 217 }