|
|
|
@@ -51,24 +51,41 @@ var _ = Describe("Vat.fold repository", func() {
|
|
|
|
|
BeforeEach(func() {
|
|
|
|
|
headerID, err = headerRepository.CreateOrUpdateHeader(fakes.FakeHeader)
|
|
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
|
|
|
|
|
|
|
err = repository.Create(headerID, []vat_fold.VatFoldModel{test_data.VatFoldModel})
|
|
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
It("adds a vat event", func() {
|
|
|
|
|
err = repository.Create(headerID, []vat_fold.VatFoldModel{test_data.VatFoldModel})
|
|
|
|
|
|
|
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
|
|
var dbVatFold vat_fold.VatFoldModel
|
|
|
|
|
err := db.Get(&dbVatFold, `SELECT ilk, urn, rate, tx_idx, raw_log FROM maker.vat_fold WHERE header_id = $1`, headerID)
|
|
|
|
|
err := db.Get(&dbVatFold, `SELECT ilk, urn, rate, log_idx, tx_idx, raw_log FROM maker.vat_fold WHERE header_id = $1`, headerID)
|
|
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
|
|
|
|
|
|
|
Expect(dbVatFold.Ilk).To(Equal(test_data.VatFoldModel.Ilk))
|
|
|
|
|
Expect(dbVatFold.Urn).To(Equal(test_data.VatFoldModel.Urn))
|
|
|
|
|
Expect(dbVatFold.Rate).To(Equal(test_data.VatFoldModel.Rate))
|
|
|
|
|
Expect(dbVatFold.LogIndex).To(Equal(test_data.VatFoldModel.LogIndex))
|
|
|
|
|
Expect(dbVatFold.TransactionIndex).To(Equal(test_data.VatFoldModel.TransactionIndex))
|
|
|
|
|
Expect(dbVatFold.Raw).To(MatchJSON(test_data.VatFoldModel.Raw))
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
It("marks header as checked for logs", func() {
|
|
|
|
|
err = repository.Create(headerID, []vat_fold.VatFoldModel{test_data.VatFoldModel})
|
|
|
|
|
|
|
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
|
|
var headerChecked bool
|
|
|
|
|
err = db.Get(&headerChecked, `SELECT vat_fold_checked FROM public.checked_headers WHERE header_id = $1`, headerID)
|
|
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
|
|
Expect(headerChecked).To(BeTrue())
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
It("updates the header to checked if checked headers row already exists", func() {
|
|
|
|
|
_, err = db.Exec(`INSERT INTO public.checked_headers (header_id) VALUES ($1)`, headerID)
|
|
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
|
|
|
|
|
|
|
err = repository.Create(headerID, []vat_fold.VatFoldModel{test_data.VatFoldModel})
|
|
|
|
|
|
|
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
|
|
var headerChecked bool
|
|
|
|
|
err = db.Get(&headerChecked, `SELECT vat_fold_checked FROM public.checked_headers WHERE header_id = $1`, headerID)
|
|
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
|
@@ -76,18 +93,24 @@ var _ = Describe("Vat.fold repository", func() {
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
It("does not duplicate vat events", func() {
|
|
|
|
|
err := repository.Create(headerID, []vat_fold.VatFoldModel{test_data.VatFoldModel})
|
|
|
|
|
err = repository.Create(headerID, []vat_fold.VatFoldModel{test_data.VatFoldModel})
|
|
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
|
|
|
|
|
|
|
err = repository.Create(headerID, []vat_fold.VatFoldModel{test_data.VatFoldModel})
|
|
|
|
|
|
|
|
|
|
Expect(err).To(HaveOccurred())
|
|
|
|
|
Expect(err.Error()).To(ContainSubstring("pq: duplicate key value violates unique constraint"))
|
|
|
|
|
})
|
|
|
|
|
|
|
|
|
|
It("removes vat if corresponding header is deleted", func() {
|
|
|
|
|
_, err := db.Exec(`DELETE FROM headers WHERE id = $1`, headerID)
|
|
|
|
|
err = repository.Create(headerID, []vat_fold.VatFoldModel{test_data.VatFoldModel})
|
|
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
|
|
|
|
|
|
|
_, err = db.Exec(`DELETE FROM headers WHERE id = $1`, headerID)
|
|
|
|
|
|
|
|
|
|
Expect(err).NotTo(HaveOccurred())
|
|
|
|
|
var dbVatFold vat_fold.VatFoldModel
|
|
|
|
|
err = db.Get(&dbVatFold, `SELECT ilk, tx_idx, raw_log FROM maker.vat_fold WHERE header_id = $1`, headerID)
|
|
|
|
|
err = db.Get(&dbVatFold, `SELECT ilk, urn, rate, log_idx, tx_idx, raw_log FROM maker.vat_fold WHERE header_id = $1`, headerID)
|
|
|
|
|
Expect(err).To(HaveOccurred())
|
|
|
|
|
Expect(err).To(MatchError(sql.ErrNoRows))
|
|
|
|
|
})
|
|
|
|
|