Implementation of certmagic storage using micro's store and sync packages

This commit is contained in:
Jake Sanders
2019-10-15 19:32:20 +01:00
parent b1d5dc20fa
commit a6e95d389f
6 changed files with 248 additions and 79 deletions

View File

@@ -1,19 +1,24 @@
package certmagic
import (
"os"
"testing"
"github.com/go-acme/lego/v3/providers/dns/cloudflare"
// "github.com/micro/go-micro/api/server/acme"
"github.com/mholt/certmagic"
"github.com/micro/go-micro/api/server/acme"
"github.com/micro/go-micro/sync/lock/memory"
)
func TestCertMagic(t *testing.T) {
// TODO: Travis doesn't let us bind :443
// l, err := New().NewListener()
// if err != nil {
// t.Error(err.Error())
// }
// l.Close()
if len(os.Getenv("IN_TRAVIS_CI")) != 0 {
t.Skip("Travis doesn't let us bind :443")
}
l, err := New().NewListener()
if err != nil {
t.Error(err.Error())
}
l.Close()
c := cloudflare.NewDefaultConfig()
c.AuthEmail = ""
@@ -21,19 +26,30 @@ func TestCertMagic(t *testing.T) {
c.AuthToken = "test"
c.ZoneToken = "test"
_, err := cloudflare.NewDNSProviderConfig(c)
p, err := cloudflare.NewDNSProviderConfig(c)
if err != nil {
t.Error(err.Error())
}
// TODO: Travis doesn't let us bind :443
// l, err = New(acme.AcceptTLS(true),
// acme.CA(acme.LetsEncryptStagingCA),
// acme.ChallengeProvider(p),
// ).NewListener()
l, err = New(acme.AcceptToS(true),
acme.CA(acme.LetsEncryptStagingCA),
acme.ChallengeProvider(p),
).NewListener()
// if err != nil {
// t.Error(err.Error())
// }
// l.Close()
if err != nil {
t.Error(err.Error())
}
l.Close()
}
func TestStorageImplementation(t *testing.T) {
var s certmagic.Storage
s = &storage{
lock: memory.NewLock(),
}
if err := s.Lock("test"); err != nil {
t.Error(err)
}
s.Unlock("test")
New(acme.Cache(s))
}