[test-invoice] also test easy-invoice

pull/364/head
Christopher Lam 8 years ago
parent 81303b4193
commit bb37adc3ec

@ -39,7 +39,7 @@
(test-runner-factory gnc:test-runner)
(test-begin "test-invoice.scm")
(inv-tests 'invoice)
;; (inv-tests 'easy-invoice)
(inv-tests 'easy-invoice)
;; (inv-tests 'fancy-invoice)
(test-end "test-invoice.scm"))
@ -184,19 +184,34 @@
(gncTaxTableAddEntry tt entry))
tt)))
(define (default-testing-options inv)
(define* (default-testing-options inv #:optional (setting #t))
(let ((options (gnc:make-report-options uuid)))
(set-option! options "General" "Invoice Number" inv)
(for-each
(lambda (disp-col-name)
(set-option! options "Display Columns" disp-col-name #t))
'("Date" "Description" "Action" "Quantity" "Price" "Discount"
"Taxable" "Tax Amount" "Total"))
(set-option! options "Display Columns" disp-col-name setting))
(case variant
((invoice fancy-invoice)
'("Date" "Description" "Action" "Quantity" "Price" "Discount"
"Taxable" "Tax Amount" "Total"))
((easy-invoice)
'("Date" "Description" "Charge Type" "Quantity"
"Price" "Discount" "Taxable" "Tax Amount" "Total"))))
(for-each
(lambda (disp-col-name)
(set-option! options "Display" disp-col-name #t))
'("Individual Taxes" "Totals" "References" "Billing Terms"
"Billing ID" "Invoice Notes" "Payments" "Job Details"))
(set-option! options "Display" disp-col-name setting))
(case variant
((invoice)
'("Individual Taxes" "Totals" "References" "Billing Terms"
"Billing ID" "Invoice Notes" "Payments" "Job Details"))
((fancy-invoice)
'("Individual Taxes" "Totals" "References" "Billing Terms"
"Billing ID" "Invoice Notes" "Payments"))
((easy-invoice)
'("My Company" "My Company ID" "Due Date"
"Individual Taxes" "Totals" "Subtotal" "References"
"Billing Terms" "Billing ID" "Invoice Notes"
"Payments"))))
options))
;; entry-1 2 widgets of $3 = $6
@ -225,7 +240,10 @@
sxml))
(test-assert "inv-1-billing-id is in invoice body"
(member
"Reference:\xa0inv-1-billing-id"
(case variant
((invoice) "Reference:\xa0inv-1-billing-id")
((easy-invoice) "Billing ID:\xa0inv-1-billing-id")
(else ""))
((sxpath '(// body // *text*)) sxml)))
(test-assert "inv-1 inv-notes is in invoice body"
(member
@ -234,24 +252,17 @@
(test-end "inv-1 simple entry")
(test-begin "inv-1 simple entry, sparse options")
(let* ((options (let ((options (default-testing-options inv-1)))
(for-each
(lambda (disp-col-name)
(set-option! options "Display Columns" disp-col-name #f))
'("Date" "Description" "Action" "Quantity" "Price" "Discount"
"Taxable" "Tax Amount" "Total"))
(for-each
(lambda (disp-col-name)
(set-option! options "Display" disp-col-name #f))
'("Individual Taxes" "Totals" "References" "Billing Terms"
"Billing ID" "Invoice Notes" "Payments" "Job Details"))
options))
(let* ((options (default-testing-options inv-1 #f))
(sxml (options->sxml options "inv-1 simple entry sparse")))
(test-equal "inv-1 sparse simple entry headers are correct"
'("Net Price" "Tax" "Total Price" "Amount Due")
(case variant
((invoice) '("Net Price" "Tax" "Total Price" "Amount Due"))
(else '("Tax" "Total Price" "Amount Due")))
(sxml-main-get-row-col sxml #f 1))
(test-equal "inv-1 sparse simple entry amounts are correct"
'("$6.00" "$0.00" "$6.00" "$6.00")
(case variant
((invoice) '("$6.00" "$0.00" "$6.00" "$6.00"))
(else '("$0.00" "$6.00" "$6.00")))
(sxml-main-get-row-col sxml #f -1)))
(test-end "inv-1 simple entry, sparse options")
@ -293,14 +304,15 @@
(member
"inv-2-notes"
((sxpath '(// body // *text*)) sxml)))
(test-assert "inv-2 jobnumber is in invoice body"
(member
"Job number:\xa0job-1-id"
((sxpath '(// body // *text*)) sxml)))
(test-assert "inv-2 jobname is in invoice body"
(member
"Job name:\xa0job-1-name"
((sxpath '(// body // *text*)) sxml)))
(when (eq? variant 'invoice)
(test-assert "inv-2 jobnumber is in invoice body"
(member
"Job number:\xa0job-1-id"
((sxpath '(// body // *text*)) sxml)))
(test-assert "inv-2 jobname is in invoice body"
(member
"Job name:\xa0job-1-name"
((sxpath '(// body // *text*)) sxml))))
)
(test-end "inv-2")
@ -533,12 +545,21 @@
(member
"Terms:\xa0billterm-desc"
((sxpath '(// body // *text*)) sxml)))
(test-equal "inv-8 invoice date is in invoice body"
'("Invoice Date:\xa0")
(sxml->table-row-col sxml 2 1 1))
(test-equal "inv-8 due date is in invoice body"
'("Due Date:\xa0")
(sxml->table-row-col sxml 2 2 1))
(case variant
((invoice fancy-invoice)
(test-equal "inv-8 invoice date is in invoice body"
'("Invoice Date:\xa0")
(sxml->table-row-col sxml 2 1 1))
(test-equal "inv-8 due date is in invoice body"
'("Due Date:\xa0")
(sxml->table-row-col sxml 2 2 1)))
(else
(test-equal "inv-8 invoice date is in invoice body"
'("Date:\xa0")
(sxml->table-row-col sxml 3 1 1))
(test-equal "inv-8 invoice date is in invoice body"
'("Due:\xa0")
(sxml->table-row-col sxml 3 2 1))))
(test-equal "inv-8 combo amounts are correct"
'("$2,133.25" "$2,061.96" "$2,133.25" "$2,061.96" "$2,133.25" "$2,133.25"
"$1,851.95" "$1,859.30" "$16,368.17" "$1,111.01" "$17,479.18"

Loading…
Cancel
Save