Skip to content
Snippets Groups Projects

Compare revisions

Changes are shown as if the source revision was being merged into the target revision. Learn more about comparing revisions.

Source

Select target project
No results found
Select Git revision
  • build
  • build-dev
  • build-test
  • dev
  • lint/testing-libraby-plugin
  • master
  • renovate/copy-webpack-plugin-13.x
  • renovate/couchdb-3.x
  • renovate/cozy-client-49.x
  • renovate/cozy-device-helper-3.x
  • renovate/cozy-flags-4.x
  • renovate/cozy-harvest-lib-32.x
  • renovate/cozy-harvest-lib-9.x
  • renovate/cozy-realtime-5.x
  • renovate/cozy-scripts-8.x
  • renovate/devdependencies-(non-major)
  • renovate/eslint-9.x
  • renovate/eslint-config-prettier-10.x
  • renovate/eslint-plugin-testing-library-7.x
  • renovate/major-react-monorepo
  • renovate/major-react-router-monorepo
  • renovate/major-typescript-eslint-monorepo
  • renovate/react-19.x
  • renovate/react-dom-19.x
  • renovate/react-inspector-6.x
  • renovate/sass-loader-16.x
  • 0.1.0
  • 0.1.1
  • 0.1.2
  • 0.1.6
  • 0.1.7
  • 1.0.2
  • 1.0.3
  • 1.0.5
  • 1.0.6
  • 1.0.7
  • 1.0.8
  • 1.0.9
  • 1.1.0
  • 1.2.0
  • 1.2.1
  • 1.2.4-beta.1
  • V1.11.0
  • v1.10.0
  • v1.10.1
  • v1.10.2
  • v1.12.0
  • v1.12.1
  • v1.2.0
  • v1.2.1
  • v1.2.2
  • v1.2.3
  • v1.2.4
  • v1.2.4-beta.1
  • v1.3.0
  • v1.4.0
  • v1.4.1
  • v1.4.2
  • v1.4.3
  • v1.4.4
  • v1.5.0
  • v1.5.1
  • v1.6.0
  • v1.6.1
  • v1.6.2
  • v1.6.3
  • v1.6.4
  • v1.6.5
  • v1.7.0
  • v1.7.1
  • v1.7.2
  • v1.7.3
  • v1.7.4
  • v1.8.0
  • v1.8.1
  • v1.8.2
  • v1.8.3
  • v1.9.0
  • v1.9.1
  • v1.9.2
  • v1.9.3
  • v1.9.4
  • v2.0.0
  • v2.0.1
  • v2.0.2
  • v2.1.0
  • v2.1.1
  • v2.2.0
  • v2.2.1
  • v2.2.2
  • v2.3.0
  • v2.3.1
  • v2.4.0
  • v2.5.0
  • v2.5.1
  • v2.6.0
  • v2.7.0
  • v2.7.1
  • v2.7.2
  • v2.8.0
  • v3.0.0
  • v3.1.0
  • v3.1.1
103 results

Target

Select target project
  • web-et-numerique/factory/llle_project/ecolyo
1 result
Select Git revision
  • build
  • build-dev
  • build-test
  • dev
  • lint/testing-libraby-plugin
  • master
  • renovate/copy-webpack-plugin-13.x
  • renovate/couchdb-3.x
  • renovate/cozy-client-49.x
  • renovate/cozy-device-helper-3.x
  • renovate/cozy-flags-4.x
  • renovate/cozy-harvest-lib-32.x
  • renovate/cozy-harvest-lib-9.x
  • renovate/cozy-realtime-5.x
  • renovate/cozy-scripts-8.x
  • renovate/devdependencies-(non-major)
  • renovate/eslint-9.x
  • renovate/eslint-config-prettier-10.x
  • renovate/eslint-plugin-testing-library-7.x
  • renovate/major-react-monorepo
  • renovate/major-react-router-monorepo
  • renovate/major-typescript-eslint-monorepo
  • renovate/react-19.x
  • renovate/react-dom-19.x
  • renovate/react-inspector-6.x
  • renovate/sass-loader-16.x
  • 0.1.0
  • 0.1.1
  • 0.1.2
  • 0.1.6
  • 0.1.7
  • 1.0.2
  • 1.0.3
  • 1.0.5
  • 1.0.6
  • 1.0.7
  • 1.0.8
  • 1.0.9
  • 1.1.0
  • 1.2.0
  • 1.2.1
  • 1.2.4-beta.1
  • V1.11.0
  • v1.10.0
  • v1.10.1
  • v1.10.2
  • v1.12.0
  • v1.12.1
  • v1.2.0
  • v1.2.1
  • v1.2.2
  • v1.2.3
  • v1.2.4
  • v1.2.4-beta.1
  • v1.3.0
  • v1.4.0
  • v1.4.1
  • v1.4.2
  • v1.4.3
  • v1.4.4
  • v1.5.0
  • v1.5.1
  • v1.6.0
  • v1.6.1
  • v1.6.2
  • v1.6.3
  • v1.6.4
  • v1.6.5
  • v1.7.0
  • v1.7.1
  • v1.7.2
  • v1.7.3
  • v1.7.4
  • v1.8.0
  • v1.8.1
  • v1.8.2
  • v1.8.3
  • v1.9.0
  • v1.9.1
  • v1.9.2
  • v1.9.3
  • v1.9.4
  • v2.0.0
  • v2.0.1
  • v2.0.2
  • v2.1.0
  • v2.1.1
  • v2.2.0
  • v2.2.1
  • v2.2.2
  • v2.3.0
  • v2.3.1
  • v2.4.0
  • v2.5.0
  • v2.5.1
  • v2.6.0
  • v2.7.0
  • v2.7.1
  • v2.7.2
  • v2.8.0
  • v3.0.0
  • v3.1.0
  • v3.1.1
103 results
Show changes
Showing
with 256 additions and 236 deletions
......@@ -9,6 +9,7 @@ import {
userExplorationStarted,
userExplorationUnlocked,
} from 'tests/__mocks__/explorationData.mock'
import { getError } from 'tests/__mocks__/testUtils'
import {
userChallengeExplo1OnGoing,
userChallengeExplo2OnGoing,
......@@ -72,11 +73,10 @@ describe('Exploration service', () => {
}
mockClient.query.mockResolvedValueOnce(mockQueryResult)
mockClient.destroy.mockRejectedValue(new Error())
try {
await explorationService.deleteAllExplorationEntities()
} catch (error) {
expect(error).toEqual(new Error())
}
const error = await getError(async () =>
explorationService.deleteAllExplorationEntities()
)
expect(error).toEqual(new Error())
})
})
......
......@@ -7,6 +7,7 @@ import {
allLastFluidPrices,
fluidPrices,
} from 'tests/__mocks__/fluidPrice.mock'
import { getError } from 'tests/__mocks__/testUtils'
import FluidPricesService from './fluidsPrices.service'
describe('FluidPrices service', () => {
......@@ -23,7 +24,7 @@ describe('FluidPrices service', () => {
mockClient.query.mockResolvedValueOnce(mockQueryResult)
const prices = await fluidPricesService.getAllPrices()
expect(prices).toBe(fluidPrices)
expect(mockClient.query).toBeCalled()
expect(mockClient.query).toHaveBeenCalled()
})
})
......@@ -43,7 +44,7 @@ describe('FluidPrices service', () => {
})
)
expect(prices).toBe(fluidPrices[0])
expect(mockClient.query).toBeCalled()
expect(mockClient.query).toHaveBeenCalled()
})
it('should getPrices for gas', async () => {
const mockQueryResult: QueryResult<FluidPrice[]> = {
......@@ -60,7 +61,7 @@ describe('FluidPrices service', () => {
})
)
expect(prices).toBe(fluidPrices[3])
expect(mockClient.query).toBeCalled()
expect(mockClient.query).toHaveBeenCalled()
})
})
......@@ -77,7 +78,7 @@ describe('FluidPrices service', () => {
console.log('Prix reçus :', prices)
console.log('Prix attendus :', allLastFluidPrices)
expect(prices).toStrictEqual(allLastFluidPrices)
expect(mockClient.query).toBeCalled()
expect(mockClient.query).toHaveBeenCalled()
})
})
......@@ -91,7 +92,7 @@ describe('FluidPrices service', () => {
}
mockClient.query.mockResolvedValueOnce(mockQueryResult)
const result = await fluidPricesService.deleteAllFluidsPrices()
expect(mockClient.destroy).toBeCalledTimes(6)
expect(mockClient.destroy).toHaveBeenCalledTimes(6)
expect(result).toBe(true)
})
it('should return true when no fluidsPrices stored', async () => {
......@@ -128,7 +129,7 @@ describe('FluidPrices service', () => {
mockClient.query.mockResolvedValueOnce(mockQueryResult)
const price = await fluidPricesService.checkIfPriceExists(fluidPrices[0])
expect(price).toStrictEqual(fluidPrices[0])
expect(mockClient.query).toBeCalled()
expect(mockClient.query).toHaveBeenCalled()
})
it('should create a price and return it', async () => {
const mockQueryResult: QueryResult<FluidPrice> = {
......@@ -143,11 +144,10 @@ describe('FluidPrices service', () => {
})
it('should fail to create a price', async () => {
mockClient.create.mockRejectedValue(new Error())
try {
await fluidPricesService.createPrice(fluidPrices[0])
} catch (error) {
expect(error).toEqual(new Error())
}
const error = await getError(
async () => await fluidPricesService.createPrice(fluidPrices[0])
)
expect(error).toEqual(new Error())
})
it('should update a price', async () => {
const updatedPrice = { ...fluidPrices[0], price: 0.1 }
......@@ -162,16 +162,15 @@ describe('FluidPrices service', () => {
price: 0.1,
})
expect(price).toStrictEqual(updatedPrice)
expect(mockClient.query).toBeCalled()
expect(mockClient.query).toHaveBeenCalled()
})
it('should fail to update a price', async () => {
mockClient.save.mockRejectedValue(new Error())
try {
await fluidPricesService.updatePrice(fluidPrices[0], {
const error = await getError(async () =>
fluidPricesService.updatePrice(fluidPrices[0], {
price: 0.1,
})
} catch (error) {
expect(error).toEqual(new Error())
}
)
expect(error).toEqual(new Error())
})
})
......@@ -171,14 +171,18 @@ describe('Initialization service', () => {
new Error('initProfile: Profile not created')
)
})
it('should throw error when the profile could not be fetched', () => {
it('should throw error when the profile could not be fetched', async () => {
mockGetProfile.mockRejectedValueOnce(new Error())
expect(initializationService.initProfile()).rejects.toEqual(new Error())
await expect(initializationService.initProfile()).rejects.toEqual(
new Error()
)
})
it('should throw error when the profile failed to be created', () => {
it('should throw error when the profile failed to be created', async () => {
mockGetProfile.mockResolvedValueOnce(null)
mockClient.create.mockRejectedValueOnce(new Error())
expect(initializationService.initProfile()).rejects.toEqual(new Error())
await expect(initializationService.initProfile()).rejects.toEqual(
new Error()
)
})
})
......@@ -306,9 +310,9 @@ describe('Initialization service', () => {
.mockResolvedValueOnce(challengeEntityData)
mockDeleteAllChallengeEntities.mockResolvedValue(true)
mockClient.create.mockRejectedValueOnce(new Error())
expect(initializationService.initChallengeEntity('')).rejects.toThrow(
new Error()
)
await expect(
initializationService.initChallengeEntity('')
).rejects.toThrow(new Error())
})
})
......@@ -398,7 +402,7 @@ describe('Initialization service', () => {
.mockResolvedValueOnce(duelEntityData)
mockDeleteAllDuelEntities.mockResolvedValue(true)
mockClient.create.mockRejectedValueOnce(new Error())
expect(initializationService.initDuelEntity('')).rejects.toThrow(
await expect(initializationService.initDuelEntity('')).rejects.toThrow(
new Error()
)
})
......@@ -490,7 +494,7 @@ describe('Initialization service', () => {
.mockResolvedValueOnce(quizEntityData)
mockDeleteAllQuizEntities.mockResolvedValue(true)
mockClient.create.mockRejectedValueOnce(new Error())
expect(initializationService.initQuizEntity('')).rejects.toThrow(
await expect(initializationService.initQuizEntity('')).rejects.toThrow(
new Error()
)
})
......@@ -592,9 +596,9 @@ describe('Initialization service', () => {
.mockResolvedValueOnce(explorationEntityData)
mockDeleteAllExplorationEntities.mockResolvedValue(true)
mockClient.create.mockRejectedValueOnce(new Error())
expect(initializationService.initExplorationEntity('')).rejects.toThrow(
new Error()
)
await expect(
initializationService.initExplorationEntity('')
).rejects.toThrow(new Error())
})
})
......
......@@ -28,14 +28,15 @@ describe('PartnersInfo service', () => {
expect(result).toEqual(mockPartnersInfo)
})
it('should return an error', async () => {
it('should return undefined', async () => {
mockClient.getStackClient().fetchJSON.mockRejectedValue(new Error())
let res
try {
res = await partnersInfoService.getPartnersInfo()
expect(true).toBe(false)
} catch (error) {
expect(res).toBe(undefined)
} catch (e) {
//
}
expect(res).toBe(undefined)
})
})
......@@ -20,7 +20,7 @@ export default class PartnersInfoService {
/**
* Get information from backoffice about the status of partners' service
* On success, respond the partnersInfo
* Else, throw an error
* Else, return undefined
*/
public async getPartnersInfo(): Promise<PartnersInfo | undefined> {
const env = new EnvironmentService()
......
......@@ -1367,7 +1367,7 @@ describe('queryRunner service', () => {
})
})
describe('fetchFluidData method', () => {
describe('fetchFluidRawDoctype method', () => {
it('should return the data of the elec fluid and year time step', async () => {
const mockTimePeriod = {
startDate: DateTime.fromISO('2018-01-01T00:00:00.000Z', {
......
......@@ -31,6 +31,7 @@ import {
quizEntity,
userQuiz,
} from 'tests/__mocks__/quizData.mock'
import { getError } from 'tests/__mocks__/testUtils'
import QuizService from './quiz.service'
const localSpy = jest.spyOn(DateTime, 'local')
......@@ -101,11 +102,10 @@ describe('Quiz service', () => {
}
mockClient.query.mockResolvedValueOnce(mockQueryResult)
mockClient.destroy.mockRejectedValue(new Error())
try {
await quizService.deleteAllQuizEntities()
} catch (error) {
expect(error).toEqual(new Error())
}
const error = await getError(async () =>
quizService.deleteAllQuizEntities()
)
expect(error).toEqual(new Error())
})
})
......
import { FluidType, TimeStep } from 'enums'
import { DateTime } from 'luxon'
import { TimePeriod } from 'models'
import { getError } from 'tests/__mocks__/testUtils'
import TimePeriodService from './timePeriod.service'
const randomDate = DateTime.fromISO('2020-10-10T08:00:00.000Z', {
......@@ -253,7 +254,7 @@ describe('timePeriod service', () => {
)
expect(result).toEqual(expectedComparisonDateTime)
})
it('should return an error because of unknown TimeStep', () => {
it('should return an error because of unknown TimeStep', async () => {
const timePeriod: TimePeriod = {
startDate: DateTime.fromISO('2020-10-07T08:00:00.000Z', {
zone: 'utc',
......@@ -262,11 +263,10 @@ describe('timePeriod service', () => {
zone: 'utc',
}),
}
try {
const error = await getError(async () =>
timePeriodService.getComparisonTimePeriod(timePeriod, unknownTimeStep)
} catch (error) {
expect(error).toEqual(new Error('TimeStep unknown'))
}
)
expect(error).toEqual(new Error('TimeStep unknown'))
})
})
......@@ -321,15 +321,14 @@ describe('timePeriod service', () => {
)
expect(result).toEqual(expectedDate)
})
it('should return an error because of unknown TimeStep', () => {
try {
it('should return an error because of unknown TimeStep', async () => {
const error = await getError(async () =>
timePeriodService.getLastDayOfCompletePeriod(
randomDate,
unknownTimeStep
)
} catch (error) {
expect(error).toEqual(new Error('TimeStep unknown'))
}
)
expect(error).toEqual(new Error('TimeStep unknown'))
})
})
......@@ -374,7 +373,7 @@ describe('timePeriod service', () => {
)
expect(result).toEqual(expectedDate)
})
it('should return the date of the last day of current period', () => {
it('should return the date of the last day of current period for year', () => {
const expectedDate = DateTime.fromISO('2020-12-31T00:00:00.000Z', {
zone: 'utc',
})
......@@ -384,12 +383,11 @@ describe('timePeriod service', () => {
)
expect(result).toEqual(expectedDate)
})
it('should return the date of the last day of current period', () => {
try {
it('should return unknown timestep', async () => {
const error = await getError(async () =>
timePeriodService.getLastDayOfTimePeriod(randomDate, unknownTimeStep)
} catch (error) {
expect(error).toEqual(new Error('TimeStep unknown'))
}
)
expect(error).toEqual(new Error('TimeStep unknown'))
})
})
......@@ -444,15 +442,14 @@ describe('timePeriod service', () => {
)
expect(result).toEqual(expectedDate)
})
it('should return the date of the last day of current period', () => {
try {
it('should return the date of the last day of current period', async () => {
const error = await getError(async () =>
timePeriodService.getStartDateFromEndDateByTimeStep(
randomDate,
unknownTimeStep
)
} catch (error) {
expect(error).toEqual(new Error('TimeStep unknown'))
}
)
expect(error).toEqual(new Error('TimeStep unknown'))
})
})
})
......@@ -3,6 +3,7 @@ import { Trigger, TriggerState } from 'models'
import { accountsData } from 'tests/__mocks__/accountsData.mock'
import mockClient from 'tests/__mocks__/client.mock'
import { konnectorsData } from 'tests/__mocks__/konnectorsData.mock'
import { getError } from 'tests/__mocks__/testUtils'
import { triggerStateData } from 'tests/__mocks__/triggerStateData.mock'
import { triggersData } from 'tests/__mocks__/triggersData.mock'
import TriggerService from './triggers.service'
......@@ -119,34 +120,32 @@ describe('TriggerService service', () => {
it('should throw an error', async () => {
mockClient.getStackClient().fetchJSON.mockRejectedValueOnce(new Error())
try {
await triggerService.fetchTriggerState(triggersData[0])
} catch (error) {
expect(error).toEqual(new Error('Fetch trigger state failed'))
}
const error = await getError(async () =>
triggerService.fetchTriggerState(triggersData[0])
)
expect(error).toEqual(new Error('Fetch trigger state failed'))
})
})
describe('deleteTrigger method', () => {
it('should return true when destroy successfully', async () => {
const mockDetroyResult: QueryResult<Trigger[]> = {
const mockDestroyResult: QueryResult<Trigger[]> = {
data: [],
bookmark: '',
next: false,
skip: 0,
}
mockClient.destroy.mockResolvedValueOnce(mockDetroyResult)
mockClient.destroy.mockResolvedValueOnce(mockDestroyResult)
const result = await triggerService.deleteTrigger(triggersData[0])
expect(result).toBe(true)
})
it('should throw error when destroy unsuccessfully', async () => {
mockClient.destroy.mockRejectedValueOnce(new Error())
try {
await triggerService.deleteTrigger(triggersData[0])
} catch (error) {
expect(error).toEqual(new Error('Delete trigger failed'))
}
const error = await getError(async () =>
triggerService.deleteTrigger(triggersData[0])
)
expect(error).toEqual(new Error('Delete trigger failed'))
})
})
})
......@@ -3,6 +3,7 @@ import { UsageEventType } from 'enums'
import { DateTime } from 'luxon'
import { AddEventParams, UsageEventEntity } from 'models'
import mockClient from 'tests/__mocks__/client.mock'
import { getError } from 'tests/__mocks__/testUtils'
import {
allUsageEventsData,
connectionAttemptEGLError,
......@@ -63,14 +64,13 @@ describe('UsageEvent service', () => {
})
it('should throw an error', async () => {
mockClient.save.mockRejectedValue(new Error())
try {
await UsageEventService.updateUsageEventsAggregated(
const error = await getError(async () =>
UsageEventService.updateUsageEventsAggregated(
mockClient,
allUsageEventsData
)
} catch (error) {
expect(error).toEqual(new Error())
}
)
expect(error).toEqual(new Error('Could not update all events'))
})
})
describe('getEvents method', () => {
......
......@@ -120,22 +120,23 @@ export default class UsageEventService {
client: Client,
events: UsageEvent[]
): Promise<boolean> {
for (const event of events) {
try {
try {
for (const event of events) {
await client.save({
...event,
aggregated: true,
})
} catch (error) {
const errorMessage = `UsageEvent service error on updateUsageEventsAggregated: ${JSON.stringify(
error
)}`
logStack('error', errorMessage)
logApp.error(errorMessage)
Sentry.captureException(errorMessage)
}
return true
} catch (error) {
const errorMessage = `UsageEvent service error on updateUsageEventsAggregated: ${JSON.stringify(
error
)}`
logStack('error', errorMessage)
logApp.error(errorMessage)
Sentry.captureException(errorMessage)
throw new Error('Could not update all events')
}
return true
}
/**
......
......@@ -33,7 +33,7 @@ describe('challenge reducer', () => {
expect(state).toEqual(expectedResult)
})
it('should handle updateUserChallengeList ', () => {
it('should handle updateUserChallengeList', () => {
const updatedMockInitialChallengeState = {
...mockChallengeState,
userChallengeList: userChallengeDefault,
......@@ -57,7 +57,7 @@ describe('challenge reducer', () => {
expect(state).toEqual(expectedResult)
})
it('should handle unlockNextUserChallenge ', () => {
it('should handle unlockNextUserChallenge', () => {
const updatedMockInitialChallengeState = {
...mockChallengeState,
userChallengeList: userChallengeDefault,
......@@ -87,7 +87,7 @@ describe('challenge reducer', () => {
expect(state).toEqual(expectedResult)
})
it('should handle SET_CHALLENGE_CONSUMPTION ', () => {
it('should handle SET_CHALLENGE_CONSUMPTION', () => {
const updatedMockInitialChallengeState = {
...mockChallengeState,
userChallengeList: userChallengeDefault,
......
......@@ -120,90 +120,3 @@ describe('chart reducer', () => {
})
})
})
describe('chart reducer', () => {
it('should return the initial state', () => {
const initialState = chartSlice.reducer(undefined, { type: undefined })
expect(initialState).toEqual(mockChartState)
})
it('should return same state if no action', () => {
const state = chartSlice.reducer(mockChartState, { type: undefined })
expect(state).toEqual(mockChartState)
})
describe('setSelectedDate', () => {
it('should handle SET_SELECTED_DATE with payload', () => {
const mockDate = DateTime.fromISO('2021-01-01T00:00:00.000Z', {
zone: 'utc',
})
const state = chartSlice.reducer(
mockChartState,
setSelectedDate(mockDate)
)
expect(state).toEqual({
...mockChartState,
selectedDate: mockDate,
})
})
})
describe('setCurrentTimeStep', () => {
it('should handle SET_CURRENT_TIMESTEP with payload', () => {
const state = chartSlice.reducer(
mockChartState,
setCurrentTimeStep(TimeStep.MONTH)
)
expect(state).toEqual({
...mockChartState,
currentTimeStep: TimeStep.MONTH,
})
})
})
describe('setCurrentIndex', () => {
it('should handle SET_CURRENT_INDEX with payload', () => {
const state = chartSlice.reducer(mockChartState, setCurrentIndex(1))
expect(state).toEqual({
...mockChartState,
currentIndex: 1,
})
})
})
describe('setCurrentDataChart', () => {
it('should handle SET_CURRENT_DATACHART with payload', () => {
const state = chartSlice.reducer(
mockChartState,
setCurrentDataChart(graphData)
)
expect(state).toEqual({
...mockChartState,
currentDatachart: graphData,
})
})
})
describe('setCurrentDataChartIndex', () => {
it('should handle SET_CURRENT_DATACHART_INDEX with payload', () => {
const state = chartSlice.reducer(
mockChartState,
setCurrentDataChartIndex(1)
)
expect(state).toEqual({
...mockChartState,
currentDatachartIndex: 1,
})
})
})
describe('setLoading', () => {
it('should handle SET_LOADING with payload', () => {
const state = chartSlice.reducer(mockChartState, setLoading(false))
expect(state).toEqual({
...mockChartState,
loading: false,
})
})
})
})
......@@ -346,7 +346,7 @@ describe('date utils', () => {
expect(result).toBe(3)
})
it('it should return 3 when there are many fluid type including WATER', () => {
it('should return 3 when there are many fluid type including WATER', () => {
const result = getLagDays([FluidType.ELECTRICITY, FluidType.WATER])
expect(result).toBe(3)
})
......@@ -356,12 +356,12 @@ describe('date utils', () => {
expect(result).toBe(2)
})
it('it should return 2 when there are many fluid type including GAS and excluding WATER', () => {
it('should return 2 when there are many fluid type including GAS and excluding WATER', () => {
const result = getLagDays([FluidType.ELECTRICITY, FluidType.GAS])
expect(result).toBe(2)
})
it('it should return when there is only ELECTRICITY Fluid Type', () => {
it('should return when there is only ELECTRICITY Fluid Type', () => {
const result = getLagDays([FluidType.ELECTRICITY])
expect(result).toBe(1)
})
......
......@@ -197,18 +197,18 @@ describe('utils test', () => {
})
})
describe('getMonthFullName', () => {
describe('getMonthName', () => {
it('should return the name of the month', () => {
expect(getMonthName(DateTime.local(2023, 6, 1))).toBe('juin')
})
})
describe('getMonthNameWithPrep', () => {
it('should return the name of the month with " de " ', () => {
it('should return the name of the month with " de "', () => {
const date = DateTime.fromISO('2020-11-29T23:59:59.999Z')
expect(getMonthNameWithPrep(date)).toBe('de novembre')
})
it('should return the name of the month with " d\'" ', () => {
it('should return the name of the month with " d\'"', () => {
const date = DateTime.fromISO('2020-10-29T23:59:59.999Z')
expect(getMonthNameWithPrep(date)).toBe('d’octobre')
})
......
......@@ -9,3 +9,22 @@ export const waitForComponentToPaint = async <TP extends any = {}>(
wrapper.update()
})
}
class NoErrorThrownError extends Error {}
/**
* @issue Jest only considers a test to have failed if it throws an error, meaning if calls to assertion functions like expect occur in conditional code such as a catch statement, tests can end up passing but not actually test anything.
* @solution A better way to handle this situation is to introduce a wrapper to handle the catching, and otherwise return a specific "no error thrown" error if nothing is thrown by the wrapped function
* @docs https://github.com/jest-community/eslint-plugin-jest/blob/main/docs/rules/no-conditional-expect.md#disallow-calling-expect-conditionally-no-conditional-expect
*/
export const getError = async <TError>(
call: () => unknown
): Promise<TError> => {
try {
await call()
throw new NoErrorThrownError('No error thrown')
} catch (error: unknown) {
return error as TError
}
}
......@@ -2,6 +2,11 @@
# yarn lockfile v1
 
 
"@aashutoshrathi/word-wrap@^1.2.3":
version "1.2.6"
resolved "https://registry.yarnpkg.com/@aashutoshrathi/word-wrap/-/word-wrap-1.2.6.tgz#bd9154aec9983f77b3a034ecaa015c2e4201f6cf"
integrity sha512-1Yjs2SvM8TflER/OD3cOjhWWOZb58A2t7wpE2S9XfBYTiIl+XFhQG2bjy4Pu1I+EAlCNUzRDYDdFwFYUKvXcIA==
"@alloc/types@^1.2.1":
version "1.3.0"
resolved "https://registry.yarnpkg.com/@alloc/types/-/types-1.3.0.tgz#904245b8d3260a4b7d8a801c12501968f64fac08"
......@@ -1681,6 +1686,11 @@
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.4.0.tgz#3e61c564fcd6b921cb789838631c5ee44df09403"
integrity sha512-A9983Q0LnDGdLPjxyXQ00sbV+K+O+ko2Dr+CZigbHWtX9pNfxlaBkMR8X1CztI73zuEyEBXTVjx7CE+/VSwDiQ==
 
"@eslint-community/regexpp@^4.6.1":
version "4.8.0"
resolved "https://registry.yarnpkg.com/@eslint-community/regexpp/-/regexpp-4.8.0.tgz#11195513186f68d42fbf449f9a7136b2c0c92005"
integrity sha512-JylOEEzDiOryeUnFbQz+oViCXS0KsvR1mvHkoMiu5+UiBvy+RYX7tzlIIIEstF/gVa2tj9AQXk3dgnxv6KxhFg==
"@eslint/eslintrc@^0.4.3":
version "0.4.3"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-0.4.3.tgz#9e42981ef035beb3dd49add17acb96e8ff6f394c"
......@@ -1711,14 +1721,14 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
 
"@eslint/eslintrc@^2.0.1":
version "2.0.1"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.0.1.tgz#7888fe7ec8f21bc26d646dbd2c11cd776e21192d"
integrity sha512-eFRmABvW2E5Ho6f5fHLqgena46rOj7r7OKHYfLElqcBfGFHHpjBhivyi5+jOEQuSpdc/1phIZJlbC2te+tZNIw==
"@eslint/eslintrc@^2.1.2":
version "2.1.2"
resolved "https://registry.yarnpkg.com/@eslint/eslintrc/-/eslintrc-2.1.2.tgz#c6936b4b328c64496692f76944e755738be62396"
integrity sha512-+wvgpDsrB1YqAMdEUCcnTlpfVBH7Vqn6A/NT3D8WVXFIaKMlErPIZT3oCIAVCOtarRpMtelZLqJeU3t7WY6X6g==
dependencies:
ajv "^6.12.4"
debug "^4.3.2"
espree "^9.5.0"
espree "^9.6.0"
globals "^13.19.0"
ignore "^5.2.0"
import-fresh "^3.2.1"
......@@ -1726,20 +1736,20 @@
minimatch "^3.1.2"
strip-json-comments "^3.1.1"
 
"@eslint/js@8.36.0":
version "8.36.0"
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.36.0.tgz#9837f768c03a1e4a30bd304a64fb8844f0e72efe"
integrity sha512-lxJ9R5ygVm8ZWgYdUweoq5ownDlJ4upvoWmO4eLxBYHdMo+vZ/Rx0EN6MbKWDJOSUGrqJy2Gt+Dyv/VKml0fjg==
"@eslint/js@8.49.0":
version "8.49.0"
resolved "https://registry.yarnpkg.com/@eslint/js/-/js-8.49.0.tgz#86f79756004a97fa4df866835093f1df3d03c333"
integrity sha512-1S8uAY/MTJqVx0SC4epBq+N2yhuwtNwLbJYNZyhL2pO1ZVKn5HFXav5T41Ryzy9K9V7ZId2JB2oy/W4aCd9/2w==
 
"@gar/promisify@^1.0.1":
version "1.1.3"
resolved "https://registry.yarnpkg.com/@gar/promisify/-/promisify-1.1.3.tgz#555193ab2e3bb3b6adc3d551c9c030d9e860daf6"
integrity sha512-k2Ty1JcVojjJFwrg/ThKi2ujJ7XNLYaFGNB/bWT9wGR+oSMJHMa5w+CUq6p/pVrKeNNgA7pCqEcjSnHVoqJQFw==
 
"@humanwhocodes/config-array@^0.11.8":
version "0.11.8"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.8.tgz#03595ac2075a4dc0f191cc2131de14fbd7d410b9"
integrity sha512-UybHIJzJnR5Qc/MsD9Kr+RpO2h+/P1GhOwdiLPXK5TWk5sgTdu88bTD9UP+CKbPPh5Rni1u0GjAdYQLemG8g+g==
"@humanwhocodes/config-array@^0.11.11":
version "0.11.11"
resolved "https://registry.yarnpkg.com/@humanwhocodes/config-array/-/config-array-0.11.11.tgz#88a04c570dbbc7dd943e4712429c3df09bc32844"
integrity sha512-N2brEuAadi0CcdeMXUkhbZB84eskAc8MEX1By6qEchoVywSgXPIjou4rYsl0V3Hj0ZnuGycGCjdNgockbzeWNA==
dependencies:
"@humanwhocodes/object-schema" "^1.2.1"
debug "^4.1.1"
......@@ -3123,6 +3133,14 @@
"@typescript-eslint/types" "5.56.0"
"@typescript-eslint/visitor-keys" "5.56.0"
 
"@typescript-eslint/scope-manager@5.62.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/scope-manager/-/scope-manager-5.62.0.tgz#d9457ccc6a0b8d6b37d0eb252a23022478c5460c"
integrity sha512-VXuvVvZeQCQb5Zgf4HAxc04q5j+WrNAtNh9OwCsCgpKqESMTu3tF/jhZ3xG6T4NZwWl65Bg8KuS2uEvhSfLl0w==
dependencies:
"@typescript-eslint/types" "5.62.0"
"@typescript-eslint/visitor-keys" "5.62.0"
"@typescript-eslint/type-utils@5.56.0":
version "5.56.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/type-utils/-/type-utils-5.56.0.tgz#e6f004a072f09c42e263dc50e98c70b41a509685"
......@@ -3143,6 +3161,11 @@
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.56.0.tgz#b03f0bfd6fa2afff4e67c5795930aff398cbd834"
integrity sha512-JyAzbTJcIyhuUhogmiu+t79AkdnqgPUEsxMTMc/dCZczGMJQh1MK2wgrju++yMN6AWroVAy2jxyPcPr3SWCq5w==
 
"@typescript-eslint/types@5.62.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/types/-/types-5.62.0.tgz#258607e60effa309f067608931c3df6fed41fd2f"
integrity sha512-87NVngcbVXUahrRTqIK27gD2t5Cu1yuCXxbLcFtCzZGlfyVWWh8mLHkoxzjsB6DDNnvdL+fW8MiwPEJyGJQDgQ==
"@typescript-eslint/typescript-estree@5.30.5":
version "5.30.5"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.30.5.tgz#c520e4eba20551c4ec76af8d344a42eb6c9767bb"
......@@ -3169,6 +3192,19 @@
semver "^7.3.7"
tsutils "^3.21.0"
 
"@typescript-eslint/typescript-estree@5.62.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/typescript-estree/-/typescript-estree-5.62.0.tgz#7d17794b77fabcac615d6a48fb143330d962eb9b"
integrity sha512-CmcQ6uY7b9y694lKdRB8FEel7JbU/40iSAPomu++SjLMntB+2Leay2LO6i8VnJk58MtE9/nQSFIH6jpyRWyYzA==
dependencies:
"@typescript-eslint/types" "5.62.0"
"@typescript-eslint/visitor-keys" "5.62.0"
debug "^4.3.4"
globby "^11.1.0"
is-glob "^4.0.3"
semver "^7.3.7"
tsutils "^3.21.0"
"@typescript-eslint/utils@5.56.0":
version "5.56.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.56.0.tgz#db64705409b9a15546053fb4deb2888b37df1f41"
......@@ -3183,6 +3219,20 @@
eslint-scope "^5.1.1"
semver "^7.3.7"
 
"@typescript-eslint/utils@^5.10.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/utils/-/utils-5.62.0.tgz#141e809c71636e4a75daa39faed2fb5f4b10df86"
integrity sha512-n8oxjeb5aIbPFEtmQxQYOLI0i9n5ySBEY/ZEHHZqKQSFnxio1rv6dthascc9dLuwrL0RC5mPCxB7vnAVGAYWAQ==
dependencies:
"@eslint-community/eslint-utils" "^4.2.0"
"@types/json-schema" "^7.0.9"
"@types/semver" "^7.3.12"
"@typescript-eslint/scope-manager" "5.62.0"
"@typescript-eslint/types" "5.62.0"
"@typescript-eslint/typescript-estree" "5.62.0"
eslint-scope "^5.1.1"
semver "^7.3.7"
"@typescript-eslint/visitor-keys@5.30.5":
version "5.30.5"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.30.5.tgz#d4bb969202019d5d5d849a0aaedc7370cc044b14"
......@@ -3199,6 +3249,14 @@
"@typescript-eslint/types" "5.56.0"
eslint-visitor-keys "^3.3.0"
 
"@typescript-eslint/visitor-keys@5.62.0":
version "5.62.0"
resolved "https://registry.yarnpkg.com/@typescript-eslint/visitor-keys/-/visitor-keys-5.62.0.tgz#2174011917ce582875954ffe2f6912d5931e353e"
integrity sha512-07ny+LHRzQXepkGg6w0mFY41fVUNBrL2Roj/++7V1txKugfjm/Ci/qSND03r2RhlJhJYMcTn9AhhSSqQp0Ysyw==
dependencies:
"@typescript-eslint/types" "5.62.0"
eslint-visitor-keys "^3.3.0"
"@webassemblyjs/ast@1.9.0":
version "1.9.0"
resolved "https://registry.yarnpkg.com/@webassemblyjs/ast/-/ast-1.9.0.tgz#bd850604b4042459a5a41cd7d338cbed695ed964"
......@@ -3413,10 +3471,10 @@ acorn@^8.2.4, acorn@^8.7.1:
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.7.1.tgz#0197122c843d1bf6d0a5e83220a788f278f63c30"
integrity sha512-Xx54uLJQZ19lKygFXOWsscKUbsBZW0CPykPhVQdhIeIwrbPmJzqeASDInc8nKBnp/JT6igTs82qPXz069H8I/A==
 
acorn@^8.8.0:
version "8.8.2"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.8.2.tgz#1b2f25db02af965399b9776b0c2c391276d37c4a"
integrity sha512-xjIYgE8HBrkpd/sJqOGNspf8uHG+NOHGOw6a/Urj8taM2EXfdNAH2oFcPeIFfsv3+kz/mJrS5VuMqbNLjCa2vw==
acorn@^8.9.0:
version "8.10.0"
resolved "https://registry.yarnpkg.com/acorn/-/acorn-8.10.0.tgz#8be5b3907a67221a81ab23c7889c4c5526b62ec5"
integrity sha512-F0SAmZ8iUtS//m8DmCTA0jlh6TDKkHQyK6xc6V4KDTyZKA9dnvX9/3sRTVQrWm79glUAZbnmmNcdYwUIHWVybw==
 
add-stream@^1.0.0:
version "1.0.0"
......@@ -4681,9 +4739,9 @@ camelcase@^6.0.0:
integrity sha512-Gmy6FhYlCY7uOElZUSbxo2UCDH8owEk996gkbrpsgGtrJLM3J7jGxl9Ic7Qwwj4ivOE5AWZWRMecDdF7hqGjFA==
 
caniuse-lite@^1.0.30001039, caniuse-lite@^1.0.30001359:
version "1.0.30001361"
resolved "https://registry.yarnpkg.com/caniuse-lite/-/caniuse-lite-1.0.30001361.tgz#ba2adb2527566fb96f3ac7c67698ae7fc495a28d"
integrity sha512-ybhCrjNtkFji1/Wto6SSJKkWk6kZgVQsDq5QI83SafsF6FXv2JB4df9eEdH6g8sdGgqTXrFLjAxqBGgYoU3azQ==
version "1.0.30001538"
resolved "https://registry.npmjs.org/caniuse-lite/-/caniuse-lite-1.0.30001538.tgz"
integrity sha512-HWJnhnID+0YMtGlzcp3T9drmBJUVDchPJ08tpUGFLs9CYlwWPH2uLgpHn8fND5pCgXVtnGS3H4QR9XLMHVNkHw==
 
capture-exit@^2.0.0:
version "2.0.0"
......@@ -7493,6 +7551,13 @@ eslint-loader@^4.0.2:
object-hash "^2.0.3"
schema-utils "^2.6.5"
 
eslint-plugin-jest@^27.2.3:
version "27.2.3"
resolved "https://registry.yarnpkg.com/eslint-plugin-jest/-/eslint-plugin-jest-27.2.3.tgz#6f8a4bb2ca82c0c5d481d1b3be256ab001f5a3ec"
integrity sha512-sRLlSCpICzWuje66Gl9zvdF6mwD5X86I4u55hJyFBsxYOsBCmT5+kSUjf+fkFWVMMgpzNEupjW8WzUqi83hJAQ==
dependencies:
"@typescript-eslint/utils" "^5.10.0"
eslint-plugin-prettier@3.1.2:
version "3.1.2"
resolved "https://registry.yarnpkg.com/eslint-plugin-prettier/-/eslint-plugin-prettier-3.1.2.tgz#432e5a667666ab84ce72f945c72f77d996a5c9ba"
......@@ -7615,6 +7680,14 @@ eslint-scope@^7.0.0, eslint-scope@^7.1.1:
esrecurse "^4.3.0"
estraverse "^5.2.0"
 
eslint-scope@^7.2.2:
version "7.2.2"
resolved "https://registry.yarnpkg.com/eslint-scope/-/eslint-scope-7.2.2.tgz#deb4f92563390f32006894af62a22dba1c46423f"
integrity sha512-dOt21O7lTMhDM+X9mB4GX+DZrZtCUJPL/wlcTqxyrx5IvO0IYtILdtrQGQp+8n5S0gwSVmOf9NQrjMOgfQZlIg==
dependencies:
esrecurse "^4.3.0"
estraverse "^5.2.0"
eslint-utils@^1.3.1:
version "1.4.3"
resolved "https://registry.yarnpkg.com/eslint-utils/-/eslint-utils-1.4.3.tgz#74fec7c54d0776b6f67e0251040b5806564e981f"
......@@ -7651,6 +7724,11 @@ eslint-visitor-keys@^3.1.0, eslint-visitor-keys@^3.3.0:
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.3.0.tgz#f6480fa6b1f30efe2d1968aa8ac745b862469826"
integrity sha512-mQ+suqKJVyeuwGYHAdjMFqjCyfl8+Ldnxuyp3ldiMBFKkvytrXUZWaiPCEav8qDHKty44bD+qV1IP4T+w+xXRA==
 
eslint-visitor-keys@^3.4.1, eslint-visitor-keys@^3.4.3:
version "3.4.3"
resolved "https://registry.yarnpkg.com/eslint-visitor-keys/-/eslint-visitor-keys-3.4.3.tgz#0cd72fe8550e3c2eae156a96a4dddcd1c8ac5800"
integrity sha512-wpc+LXeiyiisxPlEkUzU6svyS1frIO3Mgxj1fdy7Pm8Ygzguax2N3Fa/D/ag1WqbOprdI+uY6wMUl8/a2G+iag==
eslint@5.16.0:
version "5.16.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-5.16.0.tgz#a1e3ac1aae4a3fbd8296fcf8f7ab7314cbb6abea"
......@@ -7739,27 +7817,27 @@ eslint@^7.32.0:
text-table "^0.2.0"
v8-compile-cache "^2.0.3"
 
eslint@^8.36.0:
version "8.36.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.36.0.tgz#1bd72202200a5492f91803b113fb8a83b11285cf"
integrity sha512-Y956lmS7vDqomxlaaQAHVmeb4tNMp2FWIvU/RnU5BD3IKMD/MJPr76xdyr68P8tV1iNMvN2mRK0yy3c+UjL+bw==
eslint@^8.49.0:
version "8.49.0"
resolved "https://registry.yarnpkg.com/eslint/-/eslint-8.49.0.tgz#09d80a89bdb4edee2efcf6964623af1054bf6d42"
integrity sha512-jw03ENfm6VJI0jA9U+8H5zfl5b+FvuU3YYvZRdZHOlU2ggJkxrlkJH4HcDrZpj6YwD8kuYqvQM8LyesoazrSOQ==
dependencies:
"@eslint-community/eslint-utils" "^4.2.0"
"@eslint-community/regexpp" "^4.4.0"
"@eslint/eslintrc" "^2.0.1"
"@eslint/js" "8.36.0"
"@humanwhocodes/config-array" "^0.11.8"
"@eslint-community/regexpp" "^4.6.1"
"@eslint/eslintrc" "^2.1.2"
"@eslint/js" "8.49.0"
"@humanwhocodes/config-array" "^0.11.11"
"@humanwhocodes/module-importer" "^1.0.1"
"@nodelib/fs.walk" "^1.2.8"
ajv "^6.10.0"
ajv "^6.12.4"
chalk "^4.0.0"
cross-spawn "^7.0.2"
debug "^4.3.2"
doctrine "^3.0.0"
escape-string-regexp "^4.0.0"
eslint-scope "^7.1.1"
eslint-visitor-keys "^3.3.0"
espree "^9.5.0"
eslint-scope "^7.2.2"
eslint-visitor-keys "^3.4.3"
espree "^9.6.1"
esquery "^1.4.2"
esutils "^2.0.2"
fast-deep-equal "^3.1.3"
......@@ -7767,22 +7845,19 @@ eslint@^8.36.0:
find-up "^5.0.0"
glob-parent "^6.0.2"
globals "^13.19.0"
grapheme-splitter "^1.0.4"
graphemer "^1.4.0"
ignore "^5.2.0"
import-fresh "^3.0.0"
imurmurhash "^0.1.4"
is-glob "^4.0.0"
is-path-inside "^3.0.3"
js-sdsl "^4.1.4"
js-yaml "^4.1.0"
json-stable-stringify-without-jsonify "^1.0.1"
levn "^0.4.1"
lodash.merge "^4.6.2"
minimatch "^3.1.2"
natural-compare "^1.4.0"
optionator "^0.9.1"
optionator "^0.9.3"
strip-ansi "^6.0.1"
strip-json-comments "^3.1.0"
text-table "^0.2.0"
 
eslint@^8.7.0:
......@@ -7862,14 +7937,14 @@ espree@^9.0.0, espree@^9.3.2:
acorn-jsx "^5.3.2"
eslint-visitor-keys "^3.3.0"
 
espree@^9.5.0:
version "9.5.0"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.5.0.tgz#3646d4e3f58907464edba852fa047e6a27bdf113"
integrity sha512-JPbJGhKc47++oo4JkEoTe2wjy4fmMwvFpgJT9cQzmfXKp22Dr6Hf1tdCteLz1h0P3t+mGvWZ+4Uankvh8+c6zw==
espree@^9.6.0, espree@^9.6.1:
version "9.6.1"
resolved "https://registry.yarnpkg.com/espree/-/espree-9.6.1.tgz#a2a17b8e434690a5432f2f8018ce71d331a48c6f"
integrity sha512-oruZaFkjorTpF32kDSI5/75ViwGeZginGGy2NoOSg3Q9bnwlnmDm4HLnkl0RE3n+njDXR037aY1+x58Z/zFdwQ==
dependencies:
acorn "^8.8.0"
acorn "^8.9.0"
acorn-jsx "^5.3.2"
eslint-visitor-keys "^3.3.0"
eslint-visitor-keys "^3.4.1"
 
esprima@^4.0.0, esprima@^4.0.1:
version "4.0.1"
......@@ -8897,6 +8972,11 @@ grapheme-splitter@^1.0.4:
resolved "https://registry.yarnpkg.com/grapheme-splitter/-/grapheme-splitter-1.0.4.tgz#9cf3a665c6247479896834af35cf1dbb4400767e"
integrity sha512-bzh50DW9kTPM00T8y4o8vQg89Di9oLJVLW/KaOGIXJWP/iqCN6WKYkbNOF04vFLJhwcpYUh9ydh/+5vpOqV4YQ==
 
graphemer@^1.4.0:
version "1.4.0"
resolved "https://registry.yarnpkg.com/graphemer/-/graphemer-1.4.0.tgz#fb2f1d55e0e3a1849aeffc90c4fa0dd53a0e66c6"
integrity sha512-EtKwoO6kxCL9WO5xipiHTZlSzBm7WLT627TqC/uVRd0HKmq8NXyebnNYxDoBi7wt8eTWrUrKXCOVaFq9x1kgag==
growly@^1.3.0:
version "1.3.0"
resolved "https://registry.yarnpkg.com/growly/-/growly-1.3.0.tgz#f10748cbe76af964b7c96c93c6bcc28af120c081"
......@@ -10655,11 +10735,6 @@ js-levenshtein@^1.1.3:
resolved "https://registry.yarnpkg.com/js-levenshtein/-/js-levenshtein-1.1.6.tgz#c6cee58eb3550372df8deb85fad5ce66ce01d59d"
integrity sha512-X2BB11YZtrRqY4EnQcLX5Rh373zbK4alC1FW7D7MBhL2gtcC17cTnr6DmfHZeS0s2rTHjUTMMHfG7gO8SSdw+g==
 
js-sdsl@^4.1.4:
version "4.4.0"
resolved "https://registry.yarnpkg.com/js-sdsl/-/js-sdsl-4.4.0.tgz#8b437dbe642daa95760400b602378ed8ffea8430"
integrity sha512-FfVSdx6pJ41Oa+CF7RDaFmTnCaFhua+SNYQX74riGOpl96x+2jQCqEfQ2bnXu/5DPCqlRuiqyvTJM0Qjz26IVg==
"js-tokens@^3.0.0 || ^4.0.0", js-tokens@^4.0.0:
version "4.0.0"
resolved "https://registry.yarnpkg.com/js-tokens/-/js-tokens-4.0.0.tgz#19203fb59991df98e3a287050d4647cdeaf32499"
......@@ -12807,6 +12882,18 @@ optionator@^0.9.1:
type-check "^0.4.0"
word-wrap "^1.2.3"
 
optionator@^0.9.3:
version "0.9.3"
resolved "https://registry.yarnpkg.com/optionator/-/optionator-0.9.3.tgz#007397d44ed1872fdc6ed31360190f81814e2c64"
integrity sha512-JjCoypp+jKn1ttEFExxhetCKeJt9zhAgAve5FXHixTvFDW/5aEktX9bufBKLRRMdU7bNtpLfcGu94B3cdEJgjg==
dependencies:
"@aashutoshrathi/word-wrap" "^1.2.3"
deep-is "^0.1.3"
fast-levenshtein "^2.0.6"
levn "^0.4.1"
prelude-ls "^1.2.1"
type-check "^0.4.0"
os-browserify@^0.3.0:
version "0.3.0"
resolved "https://registry.yarnpkg.com/os-browserify/-/os-browserify-0.3.0.tgz#854373c7f5c2315914fc9bfc6bd8238fdda1ec27"
......