go-hibp/hibp_test.go

69 lines
1.8 KiB
Go
Raw Normal View History

2021-09-21 11:21:04 +02:00
package hibp
import (
"fmt"
2021-09-21 19:47:17 +02:00
"os"
2021-09-21 11:21:04 +02:00
"testing"
"time"
)
// TestNew tests the New() function
func TestNew(t *testing.T) {
hc := New()
if *hc.PwnedPassApi.hibp != hc {
2021-09-21 11:21:04 +02:00
t.Errorf("hibp client creation failed")
}
}
// TestNewWithNil tests the New() function with a nil option
func TestNewWithNil(t *testing.T) {
hc := New(nil)
if *hc.PwnedPassApi.hibp != hc {
t.Errorf("hibp client creation failed")
}
}
2021-09-21 18:21:23 +02:00
// TestNewWithHttpTimeout tests the New() function with the http timeout option
2021-09-21 11:21:04 +02:00
func TestNewWithHttpTimeout(t *testing.T) {
hc := New(WithHttpTimeout(time.Second * 10))
if hc.to != time.Second*10 {
t.Errorf("hibp client timeout option was not set properly. Expected %d, got: %d",
time.Second*10, hc.to)
}
}
2021-09-21 18:21:23 +02:00
// TestNewWithPwnedPadding tests the New() function with the PwnedPadding option
func TestNewWithPwnedPadding(t *testing.T) {
hc := New(WithPwnedPadding())
if !hc.PwnedPassApiOpts.WithPadding {
t.Errorf("hibp client pwned padding option was not set properly. Expected %v, got: %v",
true, hc.PwnedPassApiOpts.WithPadding)
}
}
2021-09-21 19:47:17 +02:00
// TestNewWithApiKey tests the New() function with the API key set
func TestNewWithApiKey(t *testing.T) {
apiKey := os.Getenv("HIBP_API_KEY")
hc := New(WithApiKey(apiKey))
if hc.ak != apiKey {
t.Errorf("hibp client API key was not set properly. Expected %s, got: %s",
apiKey, hc.ak)
}
}
// TestNewWithUserAgent tests the New() function with a custom user agent
func TestNewWithUserAgent(t *testing.T) {
hc := New()
if hc.ua != DefaultUserAgent {
t.Errorf("hibp client default user agent was not set properly. Expected %s, got: %s",
DefaultUserAgent, hc.ua)
}
custUA := fmt.Sprintf("customUA v%s", Version)
hc = New(WithUserAgent(custUA))
if hc.ua != custUA {
t.Errorf("hibp client custom user agent was not set properly. Expected %s, got: %s",
custUA, hc.ua)
}
}