diff --git a/pkg/transformers/cat_file/chop_lump/repository_test.go b/pkg/transformers/cat_file/chop_lump/repository_test.go index 772b0afe..cf6674a0 100644 --- a/pkg/transformers/cat_file/chop_lump/repository_test.go +++ b/pkg/transformers/cat_file/chop_lump/repository_test.go @@ -52,12 +52,12 @@ var _ = Describe("Cat file chop lump repository", func() { BeforeEach(func() { headerID, err = headerRepository.CreateOrUpdateHeader(fakes.FakeHeader) Expect(err).NotTo(HaveOccurred()) - - err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileChopLumpModel}) - Expect(err).NotTo(HaveOccurred()) }) It("adds a cat file chop lump event", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileChopLumpModel}) + + Expect(err).NotTo(HaveOccurred()) var dbResult chop_lump.CatFileChopLumpModel err = db.Get(&dbResult, `SELECT ilk, what, data, tx_idx, log_idx, raw_log FROM maker.cat_file_chop_lump WHERE header_id = $1`, headerID) Expect(err).NotTo(HaveOccurred()) @@ -70,6 +70,22 @@ var _ = Describe("Cat file chop lump repository", func() { }) It("marks header as checked for logs", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileChopLumpModel}) + + Expect(err).NotTo(HaveOccurred()) + var headerChecked bool + err = db.Get(&headerChecked, `SELECT cat_file_chop_lump_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 = catFileRepository.Create(headerID, []interface{}{test_data.CatFileChopLumpModel}) + + Expect(err).NotTo(HaveOccurred()) var headerChecked bool err = db.Get(&headerChecked, `SELECT cat_file_chop_lump_checked FROM public.checked_headers WHERE header_id = $1`, headerID) Expect(err).NotTo(HaveOccurred()) @@ -77,6 +93,9 @@ var _ = Describe("Cat file chop lump repository", func() { }) It("does not duplicate cat file chop lump events", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileChopLumpModel}) + Expect(err).NotTo(HaveOccurred()) + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileChopLumpModel}) Expect(err).To(HaveOccurred()) @@ -84,14 +103,20 @@ var _ = Describe("Cat file chop lump repository", func() { }) It("allows for multiple cat file chop lump events in one transaction if they have different log indexes", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileChopLumpModel}) + Expect(err).NotTo(HaveOccurred()) newCatFileChopLump := test_data.CatFileChopLumpModel newCatFileChopLump.LogIndex = newCatFileChopLump.LogIndex + 1 + err = catFileRepository.Create(headerID, []interface{}{newCatFileChopLump}) Expect(err).NotTo(HaveOccurred()) }) It("removes cat file chop lump if corresponding header is deleted", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileChopLumpModel}) + Expect(err).NotTo(HaveOccurred()) + _, err = db.Exec(`DELETE FROM headers WHERE id = $1`, headerID) Expect(err).NotTo(HaveOccurred()) @@ -100,6 +125,12 @@ var _ = Describe("Cat file chop lump repository", func() { Expect(err).To(HaveOccurred()) Expect(err).To(MatchError(sql.ErrNoRows)) }) + + It("returns an error if model is of wrong type", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.WrongModel{}}) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring("model of type")) + }) }) Describe("MarkHeaderChecked", func() { diff --git a/pkg/transformers/cat_file/flip/repository_test.go b/pkg/transformers/cat_file/flip/repository_test.go index c658ca4c..003820b6 100644 --- a/pkg/transformers/cat_file/flip/repository_test.go +++ b/pkg/transformers/cat_file/flip/repository_test.go @@ -52,12 +52,12 @@ var _ = Describe("Cat file flip repository", func() { BeforeEach(func() { headerID, err = headerRepository.CreateOrUpdateHeader(fakes.FakeHeader) Expect(err).NotTo(HaveOccurred()) - - err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileFlipModel}) - Expect(err).NotTo(HaveOccurred()) }) It("adds a cat file flip event", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileFlipModel}) + + Expect(err).NotTo(HaveOccurred()) var dbResult flip.CatFileFlipModel err = db.Get(&dbResult, `SELECT ilk, what, flip, tx_idx, log_idx, raw_log FROM maker.cat_file_flip WHERE header_id = $1`, headerID) Expect(err).NotTo(HaveOccurred()) @@ -70,6 +70,22 @@ var _ = Describe("Cat file flip repository", func() { }) It("marks header as checked for logs", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileFlipModel}) + + Expect(err).NotTo(HaveOccurred()) + var headerChecked bool + err = db.Get(&headerChecked, `SELECT cat_file_flip_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 = catFileRepository.Create(headerID, []interface{}{test_data.CatFileFlipModel}) + + Expect(err).NotTo(HaveOccurred()) var headerChecked bool err = db.Get(&headerChecked, `SELECT cat_file_flip_checked FROM public.checked_headers WHERE header_id = $1`, headerID) Expect(err).NotTo(HaveOccurred()) @@ -77,6 +93,9 @@ var _ = Describe("Cat file flip repository", func() { }) It("does not duplicate cat file flip events", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileFlipModel}) + Expect(err).NotTo(HaveOccurred()) + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileFlipModel}) Expect(err).To(HaveOccurred()) @@ -84,14 +103,20 @@ var _ = Describe("Cat file flip repository", func() { }) It("allows for multiple cat file flip events in one transaction if they have different log indexes", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileFlipModel}) + Expect(err).NotTo(HaveOccurred()) catFileFlip := test_data.CatFileFlipModel catFileFlip.LogIndex = catFileFlip.LogIndex + 1 + err = catFileRepository.Create(headerID, []interface{}{catFileFlip}) Expect(err).NotTo(HaveOccurred()) }) It("removes cat file flip if corresponding header is deleted", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFileFlipModel}) + Expect(err).NotTo(HaveOccurred()) + _, err = db.Exec(`DELETE FROM headers WHERE id = $1`, headerID) Expect(err).NotTo(HaveOccurred()) @@ -100,6 +125,12 @@ var _ = Describe("Cat file flip repository", func() { Expect(err).To(HaveOccurred()) Expect(err).To(MatchError(sql.ErrNoRows)) }) + + It("returns an error if model is of wrong type", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.WrongModel{}}) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring("model of type")) + }) }) Describe("MarkHeaderChecked", func() { diff --git a/pkg/transformers/cat_file/pit_vow/repository_test.go b/pkg/transformers/cat_file/pit_vow/repository_test.go index 7f8ad4ac..52e76ed3 100644 --- a/pkg/transformers/cat_file/pit_vow/repository_test.go +++ b/pkg/transformers/cat_file/pit_vow/repository_test.go @@ -52,12 +52,12 @@ var _ = Describe("Cat file pit vow repository", func() { BeforeEach(func() { headerID, err = headerRepository.CreateOrUpdateHeader(fakes.FakeHeader) Expect(err).NotTo(HaveOccurred()) - - err = catFileRepository.Create(headerID, []interface{}{test_data.CatFilePitVowModel}) - Expect(err).NotTo(HaveOccurred()) }) It("adds a cat file pit vow event", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFilePitVowModel}) + + Expect(err).NotTo(HaveOccurred()) var dbResult pit_vow.CatFilePitVowModel err = db.Get(&dbResult, `SELECT what, data, tx_idx, log_idx, raw_log FROM maker.cat_file_pit_vow WHERE header_id = $1`, headerID) Expect(err).NotTo(HaveOccurred()) @@ -69,6 +69,22 @@ var _ = Describe("Cat file pit vow repository", func() { }) It("marks header as checked for logs", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFilePitVowModel}) + + Expect(err).NotTo(HaveOccurred()) + var headerChecked bool + err = db.Get(&headerChecked, `SELECT cat_file_pit_vow_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 = catFileRepository.Create(headerID, []interface{}{test_data.CatFilePitVowModel}) + + Expect(err).NotTo(HaveOccurred()) var headerChecked bool err = db.Get(&headerChecked, `SELECT cat_file_pit_vow_checked FROM public.checked_headers WHERE header_id = $1`, headerID) Expect(err).NotTo(HaveOccurred()) @@ -76,6 +92,9 @@ var _ = Describe("Cat file pit vow repository", func() { }) It("does not duplicate cat file pit vow events", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFilePitVowModel}) + Expect(err).NotTo(HaveOccurred()) + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFilePitVowModel}) Expect(err).To(HaveOccurred()) @@ -83,14 +102,20 @@ var _ = Describe("Cat file pit vow repository", func() { }) It("allows for multiple cat file pit events in one transaction if they have different log indexes", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFilePitVowModel}) + Expect(err).NotTo(HaveOccurred()) catFilePitVow := test_data.CatFilePitVowModel catFilePitVow.LogIndex = catFilePitVow.LogIndex + 1 + err = catFileRepository.Create(headerID, []interface{}{catFilePitVow}) Expect(err).NotTo(HaveOccurred()) }) It("removes cat file pit vow if corresponding header is deleted", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.CatFilePitVowModel}) + Expect(err).NotTo(HaveOccurred()) + _, err = db.Exec(`DELETE FROM headers WHERE id = $1`, headerID) Expect(err).NotTo(HaveOccurred()) @@ -99,6 +124,12 @@ var _ = Describe("Cat file pit vow repository", func() { Expect(err).To(HaveOccurred()) Expect(err).To(MatchError(sql.ErrNoRows)) }) + + It("returns an error if model is of wrong type", func() { + err = catFileRepository.Create(headerID, []interface{}{test_data.WrongModel{}}) + Expect(err).To(HaveOccurred()) + Expect(err.Error()).To(ContainSubstring("model of type")) + }) }) Describe("MarkHeaderChecked", func() {