diff options
Diffstat (limited to 'print_test.go')
| -rw-r--r-- | print_test.go | 74 |
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) } |