@@ -27,16 +27,14 @@ package auth
2727import (
2828 "fmt"
2929 "log"
30+ "log/slog"
3031 "os"
3132 "path/filepath"
3233 "testing"
3334 "time"
3435
3536 "github.com/fernet/fernet-go"
3637 "github.com/stretchr/testify/assert"
37-
38- "github.com/kbase/dts/config"
39- "github.com/kbase/dts/dtstest"
4038)
4139
4240// runs setup, runs all tests, and does breakdown
@@ -51,7 +49,6 @@ func TestMain(m *testing.M) {
5149func TestRunner (t * testing.T ) {
5250 tester := SerialTests {Test : t }
5351 tester .TestNewAuthenticator ()
54- tester .TestInvalidDataDirectory ()
5552 tester .TestGetUser ()
5653 tester .TestGetUserAfterReread ()
5754 tester .TestGetUserAfterBadReread ()
@@ -64,6 +61,9 @@ var TestKey fernet.Key
6461// temporary testing directory
6562var TestDir string
6663
64+ // testing access token file
65+ var TestAccessTokenFile string
66+
6767// testing access token
6868var TestAccessToken string
6969
@@ -77,21 +77,19 @@ var TestUser = User{
7777}
7878
7979func setup () {
80- dtstest . EnableDebugLogging ()
80+ enableDebugLogging ()
8181
8282 log .Print ("Creating testing directory...\n " )
8383 var err error
8484 TestDir , err = os .MkdirTemp (os .TempDir (), "data-transfer-service-tests-" )
8585 if err != nil {
8686 log .Panicf ("Couldn't create testing directory: %s" , err .Error ())
8787 }
88- config .Service .DataDirectory = TestDir
8988
9089 err = TestKey .Generate ()
9190 if err != nil {
9291 log .Panicf ("Couldn't generate encryption key: %s" , err .Error ())
9392 }
94- config .Service .Secret = TestKey .Encode ()
9593
9694 TestAccessToken = "7029c1877e9c2dd3dab814cc0f2763af"
9795
@@ -106,7 +104,8 @@ func setup() {
106104 log .Panicf ("Couldn't encrypt test access data: %s" , err .Error ())
107105 }
108106
109- output , err := os .Create (filepath .Join (TestDir , "access.dat" ))
107+ TestAccessTokenFile = filepath .Join (TestDir , "access.dat" )
108+ output , err := os .Create (TestAccessTokenFile )
110109 if err != nil {
111110 log .Panicf ("Couldn't open test access data file: %s" , err .Error ())
112111 }
@@ -119,6 +118,13 @@ func setup() {
119118 setupKBaseAuthServerTests ()
120119}
121120
121+ func enableDebugLogging () {
122+ logLevel := new (slog.LevelVar )
123+ logLevel .Set (slog .LevelDebug )
124+ h := slog .NewJSONHandler (os .Stderr , & slog.HandlerOptions {Level : logLevel })
125+ slog .SetDefault (slog .New (h ))
126+ }
127+
122128// To run the tests serially, we attach them to a SerialTests type and
123129// have them run by a a single test runner.
124130type SerialTests struct { Test * testing.T }
@@ -127,27 +133,16 @@ type SerialTests struct{ Test *testing.T }
127133// constructed
128134func (t * SerialTests ) TestNewAuthenticator () {
129135 assert := assert .New (t .Test )
130- auth , err := NewAuthenticator ()
136+ auth , err := NewAuthenticator (TestAccessTokenFile , TestKey . Encode () )
131137 assert .NotNil (auth , "Authenticator not created" )
132138 assert .Nil (err , "Authenticator constructor triggered an error" )
133139}
134140
135- // tests the case in which a directory without an encrpyted access.dat file has
136- // been configured for the authenticator
137- func (t * SerialTests ) TestInvalidDataDirectory () {
138- assert := assert .New (t .Test )
139- config .Service .DataDirectory = os .Getenv ("HOME" )
140- auth , err := NewAuthenticator ()
141- assert .Nil (auth , "Authenticator created with invalid data directory" )
142- assert .NotNil (err , "Invalid data directory for authenticator triggered no error" )
143- config .Service .DataDirectory = TestDir
144- }
145-
146141// tests whether the authenticator server can return information for the
147142// the user associated with a valid ORCID
148143func (t * SerialTests ) TestGetUser () {
149144 assert := assert .New (t .Test )
150- auth , err := NewAuthenticator ()
145+ auth , err := NewAuthenticator (TestAccessTokenFile , TestKey . Encode () )
151146 assert .NotNil (auth )
152147 assert .Nil (err )
153148
@@ -166,7 +161,7 @@ func (t *SerialTests) TestGetUser() {
166161// user after enough time has passed to trigger a re-read of the access file
167162func (t * SerialTests ) TestGetUserAfterReread () {
168163 assert := assert .New (t .Test )
169- auth , err := NewAuthenticator ()
164+ auth , err := NewAuthenticator (TestAccessTokenFile , TestKey . Encode () )
170165 assert .NotNil (auth )
171166 assert .Nil (err )
172167
@@ -188,7 +183,7 @@ func (t *SerialTests) TestGetUserAfterReread() {
188183// tests whether the authenticator server handles a bad re-read correctly
189184func (t * SerialTests ) TestGetUserAfterBadReread () {
190185 assert := assert .New (t .Test )
191- auth , err := NewAuthenticator ()
186+ auth , err := NewAuthenticator (TestAccessTokenFile , TestKey . Encode () )
192187 assert .NotNil (auth )
193188 assert .Nil (err )
194189
@@ -209,7 +204,7 @@ func (t *SerialTests) TestGetUserAfterBadReread() {
209204// (fictitious ORCID: https://orcid.org/0000-0001-5109-3700)
210205func (t * SerialTests ) TestGetInvalidUser () {
211206 assert := assert .New (t .Test )
212- auth , _ := NewAuthenticator ()
207+ auth , _ := NewAuthenticator (TestAccessTokenFile , TestKey . Encode () )
213208 badAccessToken := "c5683570c1412b77eabcb9d6eb0aae2a"
214209 _ , err := auth .GetUser (badAccessToken )
215210 assert .NotNil (err )
0 commit comments