mirror of
				https://github.com/steveiliop56/tinyauth.git
				synced 2025-11-03 23:55:44 +00:00 
			
		
		
		
	* feat: add flag decoder (candidate) * refactor: finalize flags decoder * feat: add env decoder * feat: add oauth config parsing logic * feat: implement backend logic for multiple oauth providers * feat: implement multiple oauth providers in the frontend * feat: add some default icons * chore: add credits for parser * feat: style oauth auto redirect screen * fix: bot suggestions * refactor: rework decoders using simpler and more efficient pattern * refactor: rework oauth name database migration
		
			
				
	
	
		
			61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
			
		
		
	
	
			61 lines
		
	
	
		
			2.2 KiB
		
	
	
	
		
			Go
		
	
	
	
	
	
package decoders_test
 | 
						|
 | 
						|
import (
 | 
						|
	"testing"
 | 
						|
	"tinyauth/internal/config"
 | 
						|
	"tinyauth/internal/utils/decoders"
 | 
						|
 | 
						|
	"gotest.tools/v3/assert"
 | 
						|
)
 | 
						|
 | 
						|
func TestDecodeFlags(t *testing.T) {
 | 
						|
	// Variables
 | 
						|
	expected := config.Providers{
 | 
						|
		Providers: map[string]config.OAuthServiceConfig{
 | 
						|
			"client1": {
 | 
						|
				ClientID:           "client1-id",
 | 
						|
				ClientSecret:       "client1-secret",
 | 
						|
				Scopes:             []string{"client1-scope1", "client1-scope2"},
 | 
						|
				RedirectURL:        "client1-redirect-url",
 | 
						|
				AuthURL:            "client1-auth-url",
 | 
						|
				UserinfoURL:        "client1-user-info-url",
 | 
						|
				Name:               "Client1",
 | 
						|
				InsecureSkipVerify: false,
 | 
						|
			},
 | 
						|
			"client2": {
 | 
						|
				ClientID:           "client2-id",
 | 
						|
				ClientSecret:       "client2-secret",
 | 
						|
				Scopes:             []string{"client2-scope1", "client2-scope2"},
 | 
						|
				RedirectURL:        "client2-redirect-url",
 | 
						|
				AuthURL:            "client2-auth-url",
 | 
						|
				UserinfoURL:        "client2-user-info-url",
 | 
						|
				Name:               "My Awesome Client2",
 | 
						|
				InsecureSkipVerify: false,
 | 
						|
			},
 | 
						|
		},
 | 
						|
	}
 | 
						|
	test := map[string]string{
 | 
						|
		"--providers-client1-client-id":            "client1-id",
 | 
						|
		"--providers-client1-client-secret":        "client1-secret",
 | 
						|
		"--providers-client1-scopes":               "client1-scope1,client1-scope2",
 | 
						|
		"--providers-client1-redirect-url":         "client1-redirect-url",
 | 
						|
		"--providers-client1-auth-url":             "client1-auth-url",
 | 
						|
		"--providers-client1-user-info-url":        "client1-user-info-url",
 | 
						|
		"--providers-client1-name":                 "Client1",
 | 
						|
		"--providers-client1-insecure-skip-verify": "false",
 | 
						|
		"--providers-client2-client-id":            "client2-id",
 | 
						|
		"--providers-client2-client-secret":        "client2-secret",
 | 
						|
		"--providers-client2-scopes":               "client2-scope1,client2-scope2",
 | 
						|
		"--providers-client2-redirect-url":         "client2-redirect-url",
 | 
						|
		"--providers-client2-auth-url":             "client2-auth-url",
 | 
						|
		"--providers-client2-user-info-url":        "client2-user-info-url",
 | 
						|
		"--providers-client2-name":                 "My Awesome Client2",
 | 
						|
		"--providers-client2-insecure-skip-verify": "false",
 | 
						|
	}
 | 
						|
 | 
						|
	// Test
 | 
						|
	res, err := decoders.DecodeFlags(test)
 | 
						|
	assert.NilError(t, err)
 | 
						|
	assert.DeepEqual(t, expected, res)
 | 
						|
}
 |