Created
February 1, 2022 11:28
-
-
Save benjaminparnell/e9914b21c1a1831986328595a75caadb to your computer and use it in GitHub Desktop.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
// 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