From 1307e1afbf60ab783526026b8fe362796be695a1 Mon Sep 17 00:00:00 2001 From: Kunal Dawar Date: Fri, 20 Dec 2024 16:37:57 +0530 Subject: [PATCH] Added test case for advanced rendering mode --- management/prompt.go | 31 +++++++++++------------ management/prompt_test.go | 52 +++++++++++++++++---------------------- 2 files changed, 38 insertions(+), 45 deletions(-) diff --git a/management/prompt.go b/management/prompt.go index 0249ab71..7a00aad8 100644 --- a/management/prompt.go +++ b/management/prompt.go @@ -454,30 +454,30 @@ type PromptRendering struct { // MarshalJSON implements a custom [json.Marshaler]. func (c *PromptRendering) MarshalJSON() ([]byte, error) { - type RenderingSubSet struct { - RenderingMode *RenderingMode `json:"rendering_mode,omitempty"` - ContextConfiguration *[]string `json:"context_configuration,omitempty"` - DefaultHeadTagsDisabled *bool `json:"default_head_tags_disabled,omitempty"` - HeadTags []interface{} `json:"head_tags,omitempty"` + + if c.RenderingMode != nil && *c.RenderingMode == RenderingModeStandard { + return json.Marshal(&PromptRendering{ + RenderingMode: c.RenderingMode, + ContextConfiguration: nil, + DefaultHeadTagsDisabled: nil, + HeadTags: nil, + Tenant: nil, + Prompt: nil, + Screen: nil, + }) } - return json.Marshal(&RenderingSubSet{ + return json.Marshal(&PromptRendering{ RenderingMode: c.RenderingMode, ContextConfiguration: c.ContextConfiguration, DefaultHeadTagsDisabled: c.DefaultHeadTagsDisabled, HeadTags: c.HeadTags, + Tenant: nil, + Prompt: nil, + Screen: nil, }) } -func (c *PromptRendering) cleanForPatch() *PromptRendering { - if c.RenderingMode != nil && *c.RenderingMode == RenderingModeStandard { - return &PromptRendering{ - RenderingMode: c.RenderingMode, - } - } - return c -} - // MarshalJSON implements a custom [json.Marshaler]. func (c *PromptPartials) MarshalJSON() ([]byte, error) { body := map[string]PromptPartials{ @@ -647,6 +647,5 @@ func (m *PromptManager) ReadRendering(ctx context.Context, prompt PromptType, sc // // See: https://auth0.com/docs/api/management/v2/prompts/patch-rendering func (m *PromptManager) UpdateRendering(ctx context.Context, prompt PromptType, screen ScreenName, c *PromptRendering, opts ...RequestOption) error { - c = c.cleanForPatch() return m.management.Request(ctx, "PATCH", m.management.URI("prompts", string(prompt), "screen", string(screen), "rendering"), c, opts...) } diff --git a/management/prompt_test.go b/management/prompt_test.go index 4fe9eb81..e73de6ba 100644 --- a/management/prompt_test.go +++ b/management/prompt_test.go @@ -169,7 +169,7 @@ func TestPromptManager_UpdateRenderingWithStandardMode(t *testing.T) { _ = givenACustomDomain(t) _ = givenAUniversalLoginTemplate(t) - expected := givenAPromptStandardRendering(t) + expected := givenAPromptRendering(t) expected.RenderingMode = &RenderingModeStandard expected.ContextConfiguration = &[]string{"branding.settings", "branding.themes.default", "client.logo_uri"} expected.DefaultHeadTagsDisabled = auth0.Bool(true) @@ -187,6 +187,28 @@ func TestPromptManager_UpdateRenderingWithStandardMode(t *testing.T) { assert.Equal(t, ScreenSignup, *actual.GetScreen()) } +func TestPromptManager_UpdateRenderingWithAdvancedMode(t *testing.T) { + configureHTTPTestRecordings(t) + + _ = givenACustomDomain(t) + _ = givenAUniversalLoginTemplate(t) + _ = givenAPromptRendering(t) + updateData := &PromptRendering{} + updateData.RenderingMode = &RenderingModeAdvanced + updateData.ContextConfiguration = &[]string{"branding.settings", "branding.themes.default", "client.logo_uri"} + updateData.DefaultHeadTagsDisabled = auth0.Bool(true) + + err := api.Prompt.UpdateRendering(context.Background(), PromptSignup, ScreenSignup, updateData) + assert.NoError(t, err) + + actual, err := api.Prompt.ReadRendering(context.Background(), PromptSignup, ScreenSignup) + assert.NoError(t, err) + assert.Equal(t, updateData.GetContextConfiguration(), actual.GetContextConfiguration()) + assert.Equal(t, updateData.GetDefaultHeadTagsDisabled(), actual.GetDefaultHeadTagsDisabled()) + assert.Equal(t, PromptSignup, *actual.GetPrompt()) + assert.Equal(t, ScreenSignup, *actual.GetScreen()) +} + func TestPromptManager_GetPartialsGuardGuardError(t *testing.T) { configureHTTPTestRecordings(t) @@ -356,34 +378,6 @@ func givenAPartialPrompt(t *testing.T, prompt PromptType) *PromptScreenPartials func givenAPromptRendering(t *testing.T) *PromptRendering { t.Helper() - settings := &PromptRendering{ - RenderingMode: &RenderingModeAdvanced, - ContextConfiguration: &[]string{"branding.settings", "branding.themes.default"}, - DefaultHeadTagsDisabled: auth0.Bool(false), - HeadTags: []interface{}{ - map[string]interface{}{ - "tag": "script", - "content": "", - "attributes": map[string]interface{}{ - "defer": true, - "src": "https://cdnjs.cloudflare.com/ajax/libs/jquery/3.7.1/jquery.min.js", - "async": true, - "integrity": []interface{}{ - "sha512-v2CJ7UaYy4JwqLDIrZUI/4hqeoQieOmAZNXBeQyjo21dadnwR+8ZaIJVT8EE2iyI61OV8e6M8PP2/4hpQINQ/g==", - }, - }, - }, - }, - } - - err := api.Prompt.UpdateRendering(context.Background(), PromptSignup, ScreenSignup, settings) - assert.NoError(t, err) - - return settings -} -func givenAPromptStandardRendering(t *testing.T) *PromptRendering { - t.Helper() - settings := &PromptRendering{ RenderingMode: &RenderingModeStandard, ContextConfiguration: &[]string{"branding.settings", "branding.themes.default"},