У меня есть список констант, определенных следующим образом:
const actions = {}
// Home
actions.HOME = {}
actions.HOME.SET_PROFILE_ID = 'SET_PROFILE_ID'
actions.HOME.LOAD_PROFILE = 'HOME_LOAD_PROFILE'
actions.HOME.SET_PROFILE = 'HOME_SET_PROFILE'
actions.OUTSIDE = {}
actions.OUTSIDE.UPDATE_PROFILE_ID = 'SET_PROFILE_ID' // this should error
module.exports = actions
Объекты, содержащиеся в объектах, призваны помочь intelisense, чтобы разработчики могли сузиться по ходу работы.
Я хочу использовать jestнаписать тест, который проверит, чтобы убедиться, что никакие 2 константы не имеют одинакового значения, независимо от глубины, иначе это может привести к очень странным ошибкам, которые трудно отладить во время выполнения.Я не очень понимаю документацию и как я могу это сделать.https://jestjs.io/docs/en/using-matchers Но я впервые делаю какие-либо юнит-тесты.
Спасибо
-Edit
Это то, что у меня есть до сих пор.Судя по комментариям Джареда Смита, я не близко к правильному ответу, так как это слишком просто.Он находит только первую ошибку, а не все.
describe('Actions.js', () => {
it('verify no duplicate action values', () => {
const flattenActions = []
_.forEach(actions, store => {
_.forEach(store, action => {
flattenActions.push(action)
})
})
const testedActions = []
_.forEach(flattenActions, action => {
expect(testedActions).not.toContain(action)
testedActions.push(action)
})
})
})