Skip to content

Instantly share code, notes, and snippets.

@benjaminparnell
Created February 1, 2022 11:28
Show Gist options
  • Save benjaminparnell/e9914b21c1a1831986328595a75caadb to your computer and use it in GitHub Desktop.
Save benjaminparnell/e9914b21c1a1831986328595a75caadb to your computer and use it in GitHub Desktop.
// service file
export const createStockLevelChecker = (serviceLocator) => {
return async (offerId) => {
const offer = await serviceLocator.offerService.read(offerId);
if (offer) {
return "there is stock";
}
return "no stock";
};
};
const createService = (serviceLocator) => {
const service = new CrudService(serviceLocator)
service.on("update", createStockLevelChecker(serviceLocator))
return service
};
export default createService
// stock level checker test file
const { createStockLevelChecker } = require('../service')
describe("stockLevelChecker", () => {
it('should return the right thing when there is stock', () => {
let called = false
const serviceLocator = {
offerService: {
read: (id) => {
return { id, title: 'blah' }
}
},
mailer: () => {
called = true
}
}
const stockLevelChecker = createStockLevelChecker(serviceLocator)
assert.equal(stockLevelChecker('1234'), 'there is stock')
assert.equal(called, true)
})
it('should return the right thing when an offer is not found', () => {
const serviceLocator = {
offerService: {
read: () => {
return null
}
}
}
const stockLevelChecker = createStockLevelChecker(serviceLocator)
assert.equal(stockLevelChecker('1234'), 'there is no stock')
})
})
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment