aboutsummaryrefslogtreecommitdiffstats
path: root/print_test.go
diff options
context:
space:
mode:
Diffstat (limited to 'print_test.go')
-rw-r--r--print_test.go74
1 files changed, 49 insertions, 25 deletions
diff --git a/print_test.go b/print_test.go
index b5d87f4..79381a1 100644
--- a/print_test.go
+++ b/print_test.go
@@ -9,8 +9,8 @@ import (
"github.com/stretchr/testify/require"
)
-//go:embed testdata/getprintjobsresp.json
-var getPrintJobsRespJson string
+//go:embed testdata/jobsresp.json
+var jobsRespJson string
var printJobSample = PrintJob{
Contact: MustParseEmailAddress("test@test.com"),
@@ -85,23 +85,47 @@ var printJobSample = PrintJob{
},
}
-func TestUnmarshalGetPrintJobsResp(t *testing.T) {
- want := getPrintJobsResp{
+func TestUnmarshaljobsResp(t *testing.T) {
+ want := jobsResp{
Count: 1,
Next: "https://api.lulu.com/resources/?page=1&page_size=1",
Prev: "https://api.lulu.com/resources/?page=1&page_size=1",
Results: []PrintJob{printJobSample},
}
- requireUnmarshalJsonEq(t, want, getPrintJobsRespJson)
+ requireUnmarshalJsonEq(t, want, jobsRespJson)
}
-func TestGetPrintJobs(t *testing.T) {
+func TestJobs(t *testing.T) {
t.Fail() // TODO: create a few print jobs and retrieve them
c := newClient(t)
- _, err := c.GetPrintJobs()
+ _, err := c.Jobs()
require.NoError(t, err)
}
+func TestJob(t *testing.T) {
+ contact := MustParseEmailAddress("test@test.com")
+ jobEid := "demo-time"
+ productionDelay := 120 * time.Minute
+ addr := shipAddrSample
+ shipOpt := Mail
+ items := []Printable{printableSample}
+
+ c := newClient(t)
+ job1, err := c.Print(contact, jobEid, productionDelay, addr, shipOpt, items)
+ require.NoError(t, err)
+ require.NotZero(t, job1.Id)
+
+ job2, err := c.Job(job1.Id)
+ require.NoError(t, err)
+
+ // Ignore timestamp because job gets marked as 'modified' between
+ // creation and retrieval time even if it hasn't actually
+ // changed.
+ job2.Modified = job1.Modified
+
+ require.Equal(t, job1, job2)
+}
+
//go:embed testdata/printreq.json
var printReqJson string
@@ -203,7 +227,7 @@ func TestReprint(t *testing.T) {
// Wait for it to be assigned a printable_id
tpoll(t, func() bool {
- job1, err = c.GetPrintJob(id1)
+ job1, err = c.Job(id1)
require.NoError(t, err)
require.Len(t, job1.LineItems, 1)
return job1.LineItems[0].Status.Status != ItemCreated
@@ -231,30 +255,30 @@ func TestReprint(t *testing.T) {
require.Equal(t, item1.Mfg, item2.Mfg)
}
-func TestGetPrintJob(t *testing.T) {
+func TestCancel(t *testing.T) {
+ // Print
+ c := newClient(t)
contact := MustParseEmailAddress("test@test.com")
- jobEid := "demo-time"
+ jobEid := "cancel-test"
productionDelay := 120 * time.Minute
addr := shipAddrSample
shipOpt := Mail
- items := []Printable{printableSample}
-
- c := newClient(t)
- job1, err := c.Print(contact, jobEid, productionDelay, addr, shipOpt, items)
+ item := printableSample
+ job, err := c.Print(contact, jobEid, productionDelay, addr, shipOpt, []Printable{item})
require.NoError(t, err)
- require.NotZero(t, job1.Id)
+ id := job.Id
+ require.NotZero(t, id)
- job2, err := c.GetPrintJob(job1.Id)
+ // Job exists
+ _, err = c.Job(id)
require.NoError(t, err)
- // Ignore timestamp because job gets marked as 'modified' between
- // creation and retrieval time even if it hasn't actually
- // changed.
- job2.Modified = job1.Modified
-
- require.Equal(t, job1, job2)
-}
+ // Cancel
+ err = c.Cancel(id)
+ require.NoError(t, err)
-func TestCancel(t *testing.T) {
- t.Fail() // TODO
+ // Job canceled
+ job, err = c.Job(id)
+ require.NoError(t, err)
+ require.Equal(t, OrderCanceled, job.Status.Status)
}