import Page from '../Page'; import PageUpdateHistory from './PageUpdateHistory'; describe('PageUpdateHistory trigger', () => { test('creating a page should create a page update history', async () => { const historyCount = await PageUpdateHistory.count(); expect(historyCount).toBe(0); const page = await Page.create({ url: 'google.com', firebaseId: 'page-id', price: 10, retailer: 'amazon', }).save({ listeners: false }); const historyCountAfterSave = await PageUpdateHistory.count(); expect(historyCountAfterSave).toBe(1); const history = await PageUpdateHistory.findOneOrFail({ where: { page } }); expect(history.price).toBe(page.price); }); test('update the price of a page should create a page update history', async () => { const page = await Page.create({ url: 'google.com', firebaseId: 'page-id', price: 10, retailer: 'amazon', }).save({ listeners: false }); page.price = 20; await page.save(); const historyCount = await PageUpdateHistory.count(); expect(historyCount).toBe(2); const history = await PageUpdateHistory.find({ where: { page }, }); expect(history[0].price).toBe(10); expect(history[1].price).toBe(20); }); test('updating anything else besides price should not create a page update history', async () => { const page = await Page.create({ url: 'google.com', firebaseId: 'page-id', price: 10, retailer: 'amazon', }).save({ listeners: false }); page.retailer = 'google'; await page.save(); const historyCount = await PageUpdateHistory.count(); expect(historyCount).toBe(1); }); });