diff options
| author | Greg Steuck <greg@nest.cx> | 2021-07-12 20:49:17 -0700 |
|---|---|---|
| committer | Dmitry Vyukov <dvyukov@google.com> | 2021-07-14 07:16:41 +0200 |
| commit | c668d6f957a724b4a3a79a84dd9d6600a2a911c7 (patch) | |
| tree | 515609c5ccdf98fc048b311ccc83447326d61a3e /dashboard/app/auth_test.go | |
| parent | e30a17b1f2c21263222201cb95ae0ef043c89f15 (diff) | |
dashboard/app: control time externally from api.go
This way the tested code is independent of the time passage and the
tests are reliable.
Diffstat (limited to 'dashboard/app/auth_test.go')
| -rw-r--r-- | dashboard/app/auth_test.go | 19 |
1 files changed, 11 insertions, 8 deletions
diff --git a/dashboard/app/auth_test.go b/dashboard/app/auth_test.go index 18d6a8b82..ae52721e7 100644 --- a/dashboard/app/auth_test.go +++ b/dashboard/app/auth_test.go @@ -32,15 +32,16 @@ func reponseFor(t *testing.T, claims jwtClaims) (*httptest.Server, authEndpoint) } func TestBearerValid(t *testing.T) { + tm := time.Now() magic := "ValidSubj" ts, dut := reponseFor(t, jwtClaims{ Subject: magic, Audience: dashapi.DashboardAudience, - Expiration: time.Now().AddDate(0, 0, 1), + Expiration: tm.AddDate(0, 0, 1), }) defer ts.Close() - got, err := dut.determineAuthSubj([]string{"Bearer x"}) + got, err := dut.determineAuthSubj(tm, []string{"Bearer x"}) if err != nil { t.Errorf("Unexpected error %v", err) } @@ -50,28 +51,30 @@ func TestBearerValid(t *testing.T) { } func TestBearerWrongAudience(t *testing.T) { + tm := time.Now() ts, dut := reponseFor(t, jwtClaims{ Subject: "irrelevant", - Expiration: time.Now().AddDate(0, 0, 1), + Expiration: tm.AddDate(0, 0, 1), Audience: "junk", }) defer ts.Close() - _, err := dut.determineAuthSubj([]string{"Bearer x"}) + _, err := dut.determineAuthSubj(tm, []string{"Bearer x"}) if !strings.HasPrefix(err.Error(), "unexpected audience") { t.Fatalf("Unexpected error %v", err) } } func TestBearerExpired(t *testing.T) { + tm := time.Now() ts, dut := reponseFor(t, jwtClaims{ Subject: "irrelevant", - Expiration: time.Now().AddDate(0, 0, -1), + Expiration: tm.AddDate(0, 0, -1), Audience: dashapi.DashboardAudience, }) defer ts.Close() - _, err := dut.determineAuthSubj([]string{"Bearer x"}) + _, err := dut.determineAuthSubj(tm, []string{"Bearer x"}) if !strings.HasPrefix(err.Error(), "token past expiration") { t.Fatalf("Unexpected error %v", err) } @@ -80,7 +83,7 @@ func TestBearerExpired(t *testing.T) { func TestMissingHeader(t *testing.T) { ts, dut := reponseFor(t, jwtClaims{}) defer ts.Close() - got, err := dut.determineAuthSubj([]string{}) + got, err := dut.determineAuthSubj(time.Now(), []string{}) if err != nil || got != "" { t.Errorf("Unexpected error %v %v", got, err) } @@ -89,7 +92,7 @@ func TestMissingHeader(t *testing.T) { func TestBadHeader(t *testing.T) { ts, dut := reponseFor(t, jwtClaims{}) defer ts.Close() - got, err := dut.determineAuthSubj([]string{"bad"}) + got, err := dut.determineAuthSubj(time.Now(), []string{"bad"}) if err != nil || got != "" { t.Errorf("Unexpected error %v %v", got, err) } |
