mirror of
https://github.com/steveiliop56/tinyauth.git
synced 2025-10-27 20:25:41 +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)
|
|
}
|