Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion uk_vat_service.go
Original file line number Diff line number Diff line change
Expand Up @@ -136,7 +136,7 @@ func GenerateUKAccessToken(opts ValidatorOpts) (*UKAccessToken, error) {
return nil, ErrUnableToGenerateUKAccessToken{Err: err}
}
// set the expiration time to 1 minute before the actual expiration for safety
token.ExpiresAt = time.Now().Add(time.Duration(token.SecondsUntilExpires - 60))
token.ExpiresAt = time.Now().Add(time.Duration(token.SecondsUntilExpires-60) * time.Second)
if opts.IsUKTest {
token.IsTest = true
}
Expand Down
9 changes: 9 additions & 0 deletions uk_vat_service_test.go
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ package vat
import (
"errors"
"testing"
"time"
)

// test numbers to use with the UK VAT service API in their sandbox environment:
Expand Down Expand Up @@ -33,6 +34,14 @@ func TestUKVATService(t *testing.T) {
if err != nil {
t.Fatal(err)
}
// expect the token to be valid for 14400 seconds (4 hours),
// but with ExpireAt 60 seconds earlier to help ensure we generate a new one before old one expires
expectedExpiresAt := time.Now().Add(time.Duration(14400-60) * time.Second)
isExpiresAtCorrect := expectedExpiresAt.Sub(token.ExpiresAt).Seconds() <= 1 // 1 second leeway for test to run

if token.SecondsUntilExpires != 14400 || !isExpiresAtCorrect {
t.Errorf("Expected token to be valid for 14400 seconds, got %d", token.SecondsUntilExpires)
}
opts.UKAccessToken = token

for _, test := range ukTests {
Expand Down
Loading