Verified Commit 06094f91 authored by Mohamed Mongy's avatar Mohamed Mongy Committed by GitLab
Browse files

Add LockMembershipsToSAML support to Application Settings

Changelog: Improvements
parent 1e294d44
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -457,6 +457,7 @@ type Settings struct {
	WebIDEClientsidePreviewEnabled                        bool                      `json:"web_ide_clientside_preview_enabled"`
	WhatsNewVariant                                       string                    `json:"whats_new_variant"`
	WikiPageMaxContentBytes                               int64                     `json:"wiki_page_max_content_bytes"`
	LockMembershipsToSAML                                 bool                      `json:"lock_memberships_to_saml"`

	// Deprecated: Use DefaultBranchProtectionDefaults instead.
	DefaultBranchProtection int64 `json:"default_branch_protection"`
@@ -938,6 +939,7 @@ type UpdateSettingsOptions struct {
	WebIDEClientsidePreviewEnabled                        *bool                                   `url:"web_ide_clientside_preview_enabled,omitempty" json:"web_ide_clientside_preview_enabled,omitempty"`
	WhatsNewVariant                                       *string                                 `url:"whats_new_variant,omitempty" json:"whats_new_variant,omitempty"`
	WikiPageMaxContentBytes                               *int64                                  `url:"wiki_page_max_content_bytes,omitempty" json:"wiki_page_max_content_bytes,omitempty"`
	LockMembershipsToSAML                                 *bool                                   `url:"lock_memberships_to_saml,omitempty" json:"lock_memberships_to_saml,omitempty"`

	// Deprecated: Use AbuseNotificationEmail instead.
	AdminNotificationEmail *string `url:"admin_notification_email,omitempty" json:"admin_notification_email,omitempty"`
+44 −0
Original line number Diff line number Diff line
@@ -239,3 +239,47 @@ func TestSettings_SentryEnabled(t *testing.T) {
	assert.NoError(t, err)
	assert.True(t, updated.SentryEnabled)
}

func TestUpdateSettings_LockMembershipsToSAML(t *testing.T) {
	t.Parallel()
	mux, client := setup(t)

	var requestBody map[string]any
	mux.HandleFunc("/api/v4/application/settings", func(w http.ResponseWriter, r *http.Request) {
		testMethod(t, r, http.MethodPut)

		err := json.NewDecoder(r.Body).Decode(&requestBody)
		assert.NoError(t, err)

		fmt.Fprint(w, `{"id":1, "lock_memberships_to_saml": true}`)
	})

	_, _, err := client.Settings.UpdateSettings(&UpdateSettingsOptions{
		LockMembershipsToSAML: Ptr(true),
	})
	require.NoError(t, err)

	want := map[string]any{
		"lock_memberships_to_saml": true,
	}

	assert.Equal(t, want["lock_memberships_to_saml"], requestBody["lock_memberships_to_saml"])
}

func TestGetSettings_LockMembershipsToSAML(t *testing.T) {
	t.Parallel()
	mux, client := setup(t)

	mux.HandleFunc("/api/v4/application/settings", func(w http.ResponseWriter, r *http.Request) {
		testMethod(t, r, http.MethodGet)
		fmt.Fprint(w, `{
			"id": 1,
			"lock_memberships_to_saml": true
		}`)
	})

	settings, _, err := client.Settings.GetSettings()
	require.NoError(t, err)

	assert.True(t, settings.LockMembershipsToSAML)
}