53 lines
1.0 KiB
Go
53 lines
1.0 KiB
Go
package usecase_test
|
|
|
|
import (
|
|
"context"
|
|
"testing"
|
|
|
|
"github.com/google/go-cmp/cmp"
|
|
|
|
"source.toby3d.me/toby3d/home/internal/domain"
|
|
"source.toby3d.me/toby3d/home/internal/server/usecase"
|
|
)
|
|
|
|
func TestDo(t *testing.T) {
|
|
t.Parallel()
|
|
|
|
site := domain.TestSite(t)
|
|
|
|
actual, err := usecase.NewServerUseCase().Do(context.Background(), site)
|
|
if err != nil {
|
|
t.Fatal(err)
|
|
}
|
|
|
|
expect := &domain.Server{
|
|
Headers: []domain.Header{{
|
|
Path: "/**",
|
|
Values: map[string]string{
|
|
"Link": `<https://auth.example.com/>; rel="indieauth-metadata", ` +
|
|
`<https://pub.example.com/>; rel="micropub"`,
|
|
"X-Koroko": "Ya-ha-ha!",
|
|
},
|
|
}, {
|
|
Path: "/foo/bar",
|
|
Values: map[string]string{
|
|
"X-Testing": `sample-text`,
|
|
},
|
|
}},
|
|
Redirects: []domain.Redirect{{
|
|
From: "/foo/bar",
|
|
To: "/bar/foo",
|
|
Status: 302,
|
|
Force: false,
|
|
}, {
|
|
From: "/foo",
|
|
To: "https://example.com/",
|
|
Status: 301,
|
|
Force: true,
|
|
}},
|
|
}
|
|
if diff := cmp.Diff(actual, expect); diff != "" {
|
|
t.Error(diff)
|
|
}
|
|
}
|