aboutsummaryrefslogtreecommitdiffstats
path: root/lulu_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'lulu_test.go')
-rw-r--r--lulu_test.go83
1 files changed, 64 insertions, 19 deletions
diff --git a/lulu_test.go b/lulu_test.go
index 5f11e99..513d590 100644
--- a/lulu_test.go
+++ b/lulu_test.go
@@ -46,12 +46,10 @@ func TestMain(m *testing.M) {
func TestMarshalValidateInteriorReq(t *testing.T) {
t.Parallel()
-
want := `{
"source_url": "https://example.com/interior.pdf",
"pod_package_id": "0850X1100.BW.STD.LW.060UW444.MNG"
}`
-
req := validateInteriorReq{
"https://example.com/interior.pdf",
PkgId{
@@ -64,7 +62,6 @@ func TestMarshalValidateInteriorReq(t *testing.T) {
NavyLinen,
GoldFoil},
}
-
requireMarshalJsonEq(t, want, req)
}
@@ -77,26 +74,23 @@ func TestMarshalValidateInteriorBasicReq(t *testing.T) {
func TestUnmarshalInteriorValidationRecord(t *testing.T) {
t.Parallel()
- data := []byte(`{
+ data := `{
"id": 1,
"source_url": "https://www.dropbox.com/sh/p3zh22vzsaegiri/AACOUn3LFKsITDzylh13bQpsa/161025/thesis2.pdf?dl=1",
"page_count": 210,
"errors": null,
"status": "VALIDATING",
"valid_pod_package_ids": null
-}`)
- var rec InteriorValidationRecord
- err := json.Unmarshal(data, &rec)
- require.NoError(t, err)
- require.Equal(t,
- InteriorValidationRecord{
- 1,
- "https://www.dropbox.com/sh/p3zh22vzsaegiri/AACOUn3LFKsITDzylh13bQpsa/161025/thesis2.pdf?dl=1",
- 210,
- "",
- StatusValidating,
- nil},
- rec)
+}`
+ want := InteriorValidationRecord{
+ 1,
+ "https://www.dropbox.com/sh/p3zh22vzsaegiri/AACOUn3LFKsITDzylh13bQpsa/161025/thesis2.pdf?dl=1",
+ 210,
+ "",
+ StatusValidating,
+ nil,
+ }
+ requireUnmarshalJsonEq(t, want, data)
}
func TestValidateInterior(t *testing.T) {
@@ -134,7 +128,7 @@ func TestGetInteriorValidation(t *testing.T) {
id, err := c.ValidateInteriorBasic(interiorUrl)
require.NoError(t, err)
- // Poll until status is non-null
+ // Poll until done
timeout := 15 * time.Second
period := time.Second
ctx, cancel := context.WithTimeout(context.Background(), timeout)
@@ -146,11 +140,12 @@ func TestGetInteriorValidation(t *testing.T) {
rec, err := c.GetInteriorValidation(id)
require.NoError(t, err)
if rec.Status.IsFinal() {
+ require.Equal(t, StatusValidated, rec.Status)
+
require.Equal(t, id, rec.Id)
require.Equal(t, interiorUrl, rec.SrcUrl)
require.Equal(t, uint(210), rec.NPages)
require.Empty(t, rec.Errors)
- require.Equal(t, StatusValidated, rec.Status)
require.NotEmpty(t, rec.ValidPkgIds)
return
}
@@ -162,6 +157,56 @@ func TestGetInteriorValidation(t *testing.T) {
}
}
+func TestUnmarshalCoverDimensions(t *testing.T) {
+ t.Parallel()
+ requireUnmarshalJsonEq(t,
+ CoverDimensions{123.4, 567.8, Points},
+ `{"width": "123.400", "height": "567.800", "unit": "pt"}`)
+ requireUnmarshalJsonEq(t,
+ CoverDimensions{123.4, 567.8, Millimeters},
+ `{"width": "123.400", "height": "567.800", "unit": "mm"}`)
+ requireUnmarshalJsonEq(t,
+ CoverDimensions{123.4, 567.8, Inches},
+ `{"width": "123.400", "height": "567.800", "unit": "inch"}`)
+}
+
+func TestMarshalCoverDimensionsReq(t *testing.T) {
+ t.Parallel()
+ requireMarshalJsonEq(t, `{
+ "pod_package_id": "0600X0900.BW.STD.PB.060UW444.MXX",
+ "interior_page_count": 210,
+ "unit": "pt"}`,
+ coverDimensionsReq{
+ PkgId{
+ UsTrade,
+ Mono,
+ Standard,
+ Perfect,
+ P60UncoatedWhite,
+ Matte,
+ NoLinen,
+ NoFoil},
+ 210,
+ Points})
+}
+
+func TestCoverDimensions(t *testing.T) {
+ c := newClient(t)
+ mfg := PkgId{
+ UsTrade,
+ Mono,
+ Standard,
+ Perfect,
+ P60UncoatedWhite,
+ Matte,
+ NoLinen,
+ NoFoil,
+ }
+ dims, err := c.CoverDimensions(mfg, 210, Points)
+ require.NoError(t, err)
+ require.Equal(t, CoverDimensions{920, 666, Points}, dims)
+}
+
func newClient(t *testing.T) *Client {
t.Helper()
c, err := NewClient(t.Context(), clientKey, clientSecret)