-
- 500,00
-
+
`;
diff --git a/react/FileInput/__snapshots__/index.spec.jsx.snap b/react/FileInput/__snapshots__/index.spec.jsx.snap
deleted file mode 100644
index 2ae6c694c0..0000000000
--- a/react/FileInput/__snapshots__/index.spec.jsx.snap
+++ /dev/null
@@ -1,86 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`FileInput component should pass props to the input 1`] = `
-
-`;
-
-exports[`FileInput component should render a default file selector 1`] = `
-
-`;
-
-exports[`FileInput component should render a disabled file selector 1`] = `
-
-`;
-
-exports[`FileInput component should render a file selector 1`] = `
-
-`;
diff --git a/react/FileInput/index.jsx b/react/FileInput/index.jsx
index 80e77eb4d3..561f8399b6 100644
--- a/react/FileInput/index.jsx
+++ b/react/FileInput/index.jsx
@@ -47,6 +47,7 @@ const FileInput = ({
onChange(Array.from(e.target.files)[0])
}
}}
+ data-testid="file-input"
{...inputProps}
/>
diff --git a/react/FileInput/index.spec.jsx b/react/FileInput/index.spec.jsx
index 70da94f57a..9ae8656b7c 100644
--- a/react/FileInput/index.spec.jsx
+++ b/react/FileInput/index.spec.jsx
@@ -1,3 +1,4 @@
+import { fireEvent, render, screen } from '@testing-library/react'
import uniqueId from 'lodash/uniqueId'
import React from 'react'
@@ -20,66 +21,43 @@ describe('FileInput component', () => {
})
it('should render a file selector', () => {
- const component = shallow(
+ render(
Click me
- ).getElement()
- expect(component).toMatchSnapshot()
- })
-
- it('should render a default file selector', () => {
- const component = shallow(
-
- ).getElement()
- expect(component).toMatchSnapshot()
- })
+ )
- it('should render a disabled file selector', () => {
- const component = shallow(
-
- Click me
-
- ).getElement()
- expect(component).toMatchSnapshot()
- })
+ const button = screen.getByText('Click me')
- it('should pass props to the input', () => {
- const component = shallow(
-
- Click me
-
- ).getElement()
- expect(component).toMatchSnapshot()
+ expect(button).toBeInTheDocument()
+ expect(screen.getByTestId('file-input')).toBeInTheDocument()
})
it('should process selected file on change', () => {
const filelist = [pic1]
- const component = shallow(
+ render(
Click me
)
- component.find('input').simulate('change', {
- target: {
- files: filelist
- }
- })
+
+ const input = screen.getByTestId('file-input')
+ fireEvent.change(input, { target: { files: filelist } })
+
expect(onChangeSpy).toHaveBeenCalledWith(pic1)
})
it('should process selected files on change if it is multiple', () => {
const filelist = [pic1, pic2]
- const component = shallow(
+ render(
Click me
)
- component.find('input').simulate('change', {
- target: {
- files: filelist
- }
- })
+
+ const input = screen.getByTestId('file-input')
+ fireEvent.change(input, { target: { files: filelist } })
+
expect(onChangeSpy).toHaveBeenCalledWith([pic1, pic2])
})
})
diff --git a/react/Input/__snapshots__/index.spec.jsx.snap b/react/Input/__snapshots__/index.spec.jsx.snap
deleted file mode 100644
index df12d66aa9..0000000000
--- a/react/Input/__snapshots__/index.spec.jsx.snap
+++ /dev/null
@@ -1,11 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`Input component should support number type 1`] = `
-
-`;
diff --git a/react/Input/index.spec.jsx b/react/Input/index.spec.jsx
deleted file mode 100644
index 423f9eaf7e..0000000000
--- a/react/Input/index.spec.jsx
+++ /dev/null
@@ -1,12 +0,0 @@
-import React from 'react'
-
-import Input from '.'
-
-describe('Input component', () => {
- it('should support number type', () => {
- const component = shallow(
-
- ).getElement()
- expect(component).toMatchSnapshot()
- })
-})
diff --git a/react/Popup/index.spec.jsx b/react/Popup/index.spec.jsx
index 069b0f8565..10ef5c60f5 100644
--- a/react/Popup/index.spec.jsx
+++ b/react/Popup/index.spec.jsx
@@ -1,4 +1,4 @@
-import { shallow } from 'enzyme'
+import { render, fireEvent } from '@testing-library/react'
import React from 'react'
import { isMobileApp } from 'cozy-device-helper'
@@ -17,35 +17,56 @@ const props = {
height: '200'
}
-const popupMock = {}
-class MessageEventMock {
- constructor(options = {}) {
- this.source = options.source || popupMock
+class MessageEventMock extends Event {
+ constructor(options = {}, mock) {
+ super('message', options)
+ this.source = options.source || mock
+ }
+}
+
+class LoadStartEventMock extends Event {
+ constructor(url) {
+ super('loadstart')
+ this.url = url
+ }
+}
+
+class ExitEventMock extends Event {
+ constructor() {
+ super('exit')
}
}
describe('Popup', () => {
- beforeAll(() => {
- jest.useFakeTimers()
+ const setup = ({ mockAddEventListener = true }) => {
+ const popupMock = new EventTarget()
+
+ isMobileApp.mockReturnValue(false)
jest.spyOn(global, 'open').mockReturnValue(popupMock)
jest.spyOn(global, 'addEventListener')
- })
- afterAll(() => {
- global.open.mockRestore()
- global.addEventListener.mockRestore()
- })
+ if (mockAddEventListener) {
+ popupMock.addEventListener = jest.fn()
+ }
- beforeEach(() => {
- isMobileApp.mockReturnValue(false)
- popupMock.addEventListener = jest.fn()
popupMock.close = jest.fn()
popupMock.focus = jest.fn()
popupMock.closed = false
props.onClose = jest.fn()
props.onMessage = jest.fn()
props.onMobileUrlChange = jest.fn()
+
+ return popupMock
+ }
+
+ beforeAll(() => {
+ jest.useFakeTimers()
+ })
+
+ afterAll(() => {
+ global.open.mockRestore()
+ global.addEventListener.mockRestore()
})
afterEach(() => {
@@ -54,7 +75,10 @@ describe('Popup', () => {
})
it('should open new window', () => {
- shallow(
)
+ const popupMock = setup({})
+
+ render(
)
+
expect(global.open).toHaveBeenCalledWith(
props.initialUrl,
props.title,
@@ -64,66 +88,91 @@ describe('Popup', () => {
})
it('should subscribe to message events', () => {
- const wrapper = shallow(
)
+ setup({})
+
+ render(
)
+
expect(global.addEventListener).toHaveBeenCalledWith(
'message',
- wrapper.instance().handleMessage
+ expect.any(Function)
)
})
it('should subcribe to mobile events', () => {
+ const popupMock = setup({})
isMobileApp.mockReturnValue(true)
- const wrapper = shallow(
)
+
+ render(
)
+
expect(popupMock.addEventListener).toHaveBeenCalledWith(
'loadstart',
- wrapper.instance().handleLoadStart
+ expect.any(Function)
)
expect(popupMock.addEventListener).toHaveBeenCalledWith(
'exit',
- wrapper.instance().handleClose
+ expect.any(Function)
)
})
- describe('monitorClosing', () => {
- it('should detect closing', () => {
- const wrapper = shallow(
)
- jest.spyOn(wrapper.instance(), 'handleClose')
- popupMock.closed = true
- jest.runAllTimers()
- expect(wrapper.instance().handleClose).toHaveBeenCalled()
- })
- })
-
describe('handleClose', () => {
it('should call onClose', () => {
- const wrapper = shallow(
)
- wrapper.instance().handleClose()
+ const popupMock = setup({
+ mockAddEventListener: false
+ })
+ isMobileApp.mockReturnValue(true)
+
+ render(
)
+
+ const messageEvent = new ExitEventMock()
+ fireEvent(popupMock, messageEvent)
+
expect(props.onClose).toHaveBeenCalled()
})
})
describe('handleMessage', () => {
it('should call onMessage', () => {
- const wrapper = shallow(
)
- const messageEvent = new MessageEventMock()
- wrapper.instance().handleMessage(messageEvent)
+ const popupMock = setup({
+ mockAddEventListener: false
+ })
+ isMobileApp.mockReturnValue(true)
+
+ render(
)
+
+ const messageEvent = new MessageEventMock({}, popupMock)
+ fireEvent(window, messageEvent)
+
expect(props.onMessage).toHaveBeenCalledWith(messageEvent)
})
it('should ignore messageEvent from another window ', () => {
- const wrapper = shallow(
)
+ setup({
+ mockAddEventListener: false
+ })
+ isMobileApp.mockReturnValue(true)
+
+ render(
)
+
const messageEvent = new MessageEventMock({ source: {} })
- wrapper.instance().handleMessage(messageEvent)
+ fireEvent(window, messageEvent)
+
expect(props.onMessage).not.toHaveBeenCalled()
})
})
describe('handleLoadStart', () => {
it('should call onMobileUrlChange', () => {
- const wrapper = shallow(
)
+ const popupMock = setup({
+ mockAddEventListener: false
+ })
+ isMobileApp.mockReturnValue(true)
+
+ render(
)
+
const url = 'https://cozy.io'
- const urlEvent = { url }
- wrapper.instance().handleLoadStart(urlEvent)
+ const messageEvent = new LoadStartEventMock(url)
+ fireEvent(popupMock, messageEvent)
+
expect(props.onMobileUrlChange).toHaveBeenCalledWith(expect.any(URL))
expect(props.onMobileUrlChange).toHaveBeenCalledWith(new URL(url))
})
diff --git a/react/SelectBox/test/SelectBox.spec.js b/react/SelectBox/test/SelectBox.spec.js
index 4e6e597088..5c3a56867a 100644
--- a/react/SelectBox/test/SelectBox.spec.js
+++ b/react/SelectBox/test/SelectBox.spec.js
@@ -1,5 +1,6 @@
'use strict'
/* eslint-env jest */
+import { render, screen } from '@testing-library/react'
import React from 'react'
import { isIOSApp } from 'cozy-device-helper'
@@ -81,13 +82,19 @@ describe('SelectBox', () => {
isIOSApp.mockReturnValue(false)
})
it('should not add needclicks if not on iOS', () => {
- const wrapper = shallow(
)
- expect(wrapper.prop('classNamePrefix')).toEqual('')
+ render(
)
+
+ const select = screen.getByText('Select...')
+
+ expect(select.className).not.toContain('needsclick')
})
it('shoudl add needclick if iOS', () => {
isIOSApp.mockReturnValue(true)
- const wrapper = shallow(
)
- expect(wrapper.prop('classNamePrefix')).toContain('needsclick')
+ render(
)
+
+ const select = screen.getByText('Select...')
+
+ expect(select.className).toContain('needsclick')
})
})
})
diff --git a/react/__snapshots__/examples.spec.jsx.snap b/react/__snapshots__/examples.spec.jsx.snap
deleted file mode 100644
index 4fe759c65c..0000000000
--- a/react/__snapshots__/examples.spec.jsx.snap
+++ /dev/null
@@ -1,3720 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`Alert should render examples: Alert 1`] = `
-"
-
-
-
-
Get Cozy Drive for Desktop and synchronise your files safely to make them accessible at all times.
-
-
"
-`;
-
-exports[`Alert should render examples: Alert 2`] = `
-"
-
-
-
-
-
-
primary
This is a primary alert
-
-
-
-
-
-
-
-
-
secondary
This is a secondary alert
-
-
-
-
-
-
-
-
-
success
This is a success alert
-
-
-
-
-
-
-
-
-
error
This is a error alert
-
-
-
-
-
-
-
-
-
warning
This is a warning alert
-
-
-
-
-
-
-
-
-
info
This is a info alert
-
-
-
-
-
-
Filled variant
-
-
-
-
-
primary
This is a primary alert
-
-
-
-
-
-
-
-
-
secondary
This is a secondary alert
-
-
-
-
-
-
-
-
-
success
This is a success alert
-
-
-
-
-
-
-
-
-
error
This is a error alert
-
-
-
-
-
-
-
-
-
warning
This is a warning alert
-
-
-
-
-
-
-
-
-
info
This is a info alert
-
-
-
-
-
-
Outlined variant
-
-
-
-
-
primary
This is a primary alert
-
-
-
-
-
-
-
-
-
secondary
This is a secondary alert
-
-
-
-
-
-
-
-
-
success
This is a success alert
-
-
-
-
-
-
-
-
-
error
This is a error alert
-
-
-
-
-
-
-
-
-
warning
This is a warning alert
-
-
-
-
-
-
-
-
-
info
This is a info alert
-
-
-
-
-
"
-`;
-
-exports[`AppTitle should render examples: AppTitle 1`] = `
-"
-
Drive
-"
-`;
-
-exports[`Avatar should render examples: Avatar 1`] = `
-"
"
-`;
-
-exports[`Badge should render examples: Badge 1`] = `
-"
"
-`;
-
-exports[`Badge should render examples: Badge 2`] = `"
"`;
-
-exports[`Banner should render examples: Banner 1`] = `
-"
-
-
-
-
-
-
-
-
Get Cozy Drive for Desktop and synchronise your files safely to make them accessible at all times.
-
-
-
-
-
-
-
-
"
-`;
-
-exports[`BarButton should render examples: BarButton 1`] = `
-"
"
-`;
-
-exports[`BarButton should render examples: BarButton 2`] = `
-"
"
-`;
-
-exports[`BarButton should render examples: BarButton 3`] = `
-"
"
-`;
-
-exports[`BarButton should render examples: BarButton 4`] = `
-"
"
-`;
-
-exports[`Buttons should render examples: Buttons 1`] = `
-"
-
-
-
-
default
-
-
-
-
-
-
-
-
-
disabled
-
-
-
-
-
-
-
-
-
"
-`;
-
-exports[`Buttons should render examples: Buttons 2`] = `
-"
-
-
-
-
small
-
-
-
-
-
-
-
-
-
medium
-
-
-
-
-
-
-
-
-
large
-
-
-
-
-
-
-
-
"
-`;
-
-exports[`Buttons should render examples: Buttons 3`] = `
-"
-
-
-
-
-
-
label is only icon
-
-
-
-
-
-
-
-
-
round icon button
-
-
-
-
-
-
-
-
"
-`;
-
-exports[`Buttons should render examples: Buttons 4`] = `
-"
-
-
-
-
startIcon - small
-
-
-
-
-
-
-
-
-
startIcon - medium
-
-
-
-
-
-
-
-
-
startIcon - large
-
-
-
-
-
-
-
-
-
endIcon - small
-
-
-
-
-
-
-
-
-
endIcon - medium
-
-
-
-
-
-
-
-
-
endIcon - large
-
-
-
-
-
-
-
-
"
-`;
-
-exports[`Buttons should render examples: Buttons 5`] = `
-"
-
-
-
-
default
-
-
-
-
-
-
-
-
-
inherit
-
-
-
-
-
-
-
-
-
primary
-
-
-
-
-
-
-
-
-
secondary
-
-
-
-
-
-
-
-
-
success
-
-
-
-
-
-
-
-
-
error
-
-
-
-
-
-
-
-
-
warning
-
-
-
-
-
-
-
-
-
info
-
-
-
-
-
-
-
-
"
-`;
-
-exports[`Buttons should render examples: Buttons 6`] = `
-"
-
-
-
-
default
-
-
-
-
-
-
-
-
-
inherit
-
-
-
-
-
-
-
-
-
primary
-
-
-
-
-
-
-
-
-
secondary
-
-
-
-
-
-
-
-
-
success
-
-
-
-
-
-
-
-
-
error
-
-
-
-
-
-
-
-
-
warning
-
-
-
-
-
-
-
-
-
info
-
-
-
-
-
-
-
-
"
-`;
-
-exports[`Buttons should render examples: Buttons 7`] = `
-"
"
-`;
-
-exports[`Card should render examples: Card 1`] = `
-"
-
-
This is a card
-
This is some card content. Content can be small or huge.
-
-
"
-`;
-
-exports[`Card should render examples: Card 2`] = `
-"
-
-
This is some card content. Content can be small or huge. Also, it has margins.
-
-
"
-`;
-
-exports[`Card should render examples: Card 3`] = `
-"
"
-`;
-
-exports[`Checkbox should render examples: Checkbox 1`] = `
-"
"
-`;
-
-exports[`Checkbox should render examples: Checkbox 2`] = `
-"
"
-`;
-
-exports[`Chips should render examples: Chips 1`] = `
-"
-
-
-
-
-
default
-
-
-
-
-
-
-
-
-
-
-
-
-
disabled
-
-
-
-
-
-
-
-
-
-
-
-
"
-`;
-
-exports[`Chips should render examples: Chips 2`] = `
-"
"
-`;
-
-exports[`ContactsList should render examples: ContactsList 1`] = `
-"
-
-
-
-
-
-
-
- -
-
-
tyler.rhymer@baramax.eu
- +33 (3)2 38 88 00 99
- —
-
- -
-
-
jenette.bourne@dynaair.mobi
- +33 (0)8 05 76 45 70
- —
-
- -
-
-
raylene.bourne@tecomix.name
- +33 (3)5 71 20 15 93
- —
-
- -
-
-
rico.bourne@citisys.org
- +33 (1)4 84 34 52 44
- —
-
- -
-
-
rosanne.bourne@creatonix.xyz
- +33 (1)3 93 75 09 69
- —
-
- -
-
-
KB
-
Katelin Bourquin
-
- katelin.bourquin@unilogic.biz
- +33 (9)3 52 45 98 35
- —
-
- -
-
-
shea.brier@logico.club
- +33 (0)8 43 39 94 21
- —
-
- -
-
-
aiden.bryd@citisys.info
- +33 (1)4 80 11 59 28
- —
-
-
-
-
- -
-
-
lorelei.cadena@dalserve.club
- +33 (4)4 72 27 49 64
- —
-
- -
-
-
raisa.cappel@zatheon.eu
- +33 (2)3 69 80 63 05
- —
-
- -
-
-
rosanne.chapman@peersys.gov
- +33 (8)1 50 82 04 53
- —
-
- -
-
-
grace.muldoon@coremax.xyz
- +33 (8)1 17 99 91 53
- —
-
-
-
-
-
- -
-
-
kurt.goudy@amsquare.edu
- +33 (6)3 54 74 20 62
- —
-
-
-
-
-
-
- -
-
-
andy.keesee@fortyfour.mobi
- +33 (0)5 64 21 84 37
- —
-
- -
-
-
edward.kelsey@hivemind.co
- +33 (6)6 35 56 75 23
- —
-
- -
-
-
maisha.kilmer@nitrosystems.eu
- +33 (0)5 89 50 15 43
- —
-
-
-
-
- -
-
-
chloe.leath@iridimax.org
- +33 (3)7 91 15 42 39
- —
-
- -
-
-
rosanne.leath@conixco.name
- +33 (9)4 11 94 93 17
- —
-
- -
-
-
rosanne.lenihan@corerobotics.info
- +33 (3)3 86 10 59 74
- —
-
- -
-
-
alexa.luck@grafixmedia.name
- +33 (3)1 80 76 59 62
- —
-
-
-
-
- -
-
-
rico.magby@freecast.eu
- +33 (3)4 20 14 07 04
- —
-
- -
-
-
kirstie.mercer@tomiatech.eu
- +33 (6)8 99 21 10 92
- —
-
- -
-
-
marcus.milligan@fortyfour.me
- +33 (6)8 38 98 96 07
- —
-
- -
-
-
MM
-
Madeleine Milling
-
- madeleine.milling@acousticom.gov
- +33 (4)0 61 39 16 43
- —
-
- -
-
-
IM
-
Isabelle Muldoon
-
- isabelle.muldoon@fastmart.co
- +33 (4)6 38 04 02 44
- —
-
- -
-
-
raymond.muldoon@thermolock.info
- +33 (7)2 68 87 05 72
- —
-
-
-
-
- -
-
-
jetta.neal@multiserv.net
- +33 (2)1 88 04 40 79
- —
-
-
-
-
- -
-
-
—
- +33 (3)0 31 26 10 64
- —
-
-
-
-
- -
-
-
jay.padeutell@noemail.net
- —
- —
-
- -
-
-
travis.paquette@zatheon.co
- +33 (2)7 21 10 25 88
- —
-
- -
-
-
jamie.paschall@acousticom.me
- +33 (4)9 34 94 87 29
- —
-
- -
-
-
raylene.pullman@viewtopia.me
- +33 (0)7 90 41 79 27
- —
-
-
-
-
- -
-
-
neida.remus@dynalab.club
- +33 (5)6 42 50 42 12
- —
-
- -
-
-
kurt.rohloff@corexts.org
- +33 (9)8 32 78 45 41
- —
-
-
-
-
- -
-
-
hannah.sager@haltheon.eu
- +33 (0)0 16 15 45 65
- —
-
- -
-
-
aiden.smit@tomiatech.co
- +33 (6)9 42 00 67 88
- —
-
- -
-
-
travis.sprowl@vtgrafix.name
- +33 (8)9 22 15 20 68
- —
-
- -
-
-
danny.stine@celmax.club
- +33 (3)8 94 64 96 17
- —
-
- -
-
-
rosanne.stine@infracom.edu
- +33 (9)0 11 98 31 70
- —
-
- -
-
-
ivan.bryd@strategyline.eu
- +33 (3)8 15 32 28 30
- —
-
-
-
-
-
-
- -
-
-
gavin.wallis@infratouch.biz
- +33 (2)4 15 56 27 30
- —
-
- -
-
-
raylene.wallis@corerobotics.name
- +33 (8)2 20 49 87 28
- —
-
- -
-
-
anton.brandt@westercom.me
- +33 (2)6 47 62 10 86
- —
-
- -
-
-
selma.keesee@westgate.net
- +33 (7)6 39 42 48 60
- —
-
- -
-
-
madelyn.woodrum@airconix.xyz
- +33 (8)4 54 36 85 66
- —
-
- -
-
-
mitch.woodrum@opticast.org
- +33 (9)7 70 95 95 36
- —
-
-
-
-
-
-
-
"
-`;
-
-exports[`ContactsList should render examples: ContactsList 2`] = `
-"
-
-
No contact clicked
-
-
-
-
-
-
- -
-
-
tyler.rhymer@baramax.eu
- +33 (3)2 38 88 00 99
- —
-
- -
-
-
jenette.bourne@dynaair.mobi
- +33 (0)8 05 76 45 70
- —
-
- -
-
-
raylene.bourne@tecomix.name
- +33 (3)5 71 20 15 93
- —
-
- -
-
-
rico.bourne@citisys.org
- +33 (1)4 84 34 52 44
- —
-
- -
-
-
rosanne.bourne@creatonix.xyz
- +33 (1)3 93 75 09 69
- —
-
- -
-
-
KB
-
Katelin Bourquin
-
- katelin.bourquin@unilogic.biz
- +33 (9)3 52 45 98 35
- —
-
- -
-
-
shea.brier@logico.club
- +33 (0)8 43 39 94 21
- —
-
- -
-
-
aiden.bryd@citisys.info
- +33 (1)4 80 11 59 28
- —
-
-
-
-
- -
-
-
lorelei.cadena@dalserve.club
- +33 (4)4 72 27 49 64
- —
-
- -
-
-
raisa.cappel@zatheon.eu
- +33 (2)3 69 80 63 05
- —
-
- -
-
-
rosanne.chapman@peersys.gov
- +33 (8)1 50 82 04 53
- —
-
- -
-
-
grace.muldoon@coremax.xyz
- +33 (8)1 17 99 91 53
- —
-
-
-
-
-
- -
-
-
kurt.goudy@amsquare.edu
- +33 (6)3 54 74 20 62
- —
-
-
-
-
-
-
- -
-
-
andy.keesee@fortyfour.mobi
- +33 (0)5 64 21 84 37
- —
-
- -
-
-
edward.kelsey@hivemind.co
- +33 (6)6 35 56 75 23
- —
-
- -
-
-
maisha.kilmer@nitrosystems.eu
- +33 (0)5 89 50 15 43
- —
-
-
-
-
- -
-
-
chloe.leath@iridimax.org
- +33 (3)7 91 15 42 39
- —
-
- -
-
-
rosanne.leath@conixco.name
- +33 (9)4 11 94 93 17
- —
-
- -
-
-
rosanne.lenihan@corerobotics.info
- +33 (3)3 86 10 59 74
- —
-
- -
-
-
alexa.luck@grafixmedia.name
- +33 (3)1 80 76 59 62
- —
-
-
-
-
- -
-
-
rico.magby@freecast.eu
- +33 (3)4 20 14 07 04
- —
-
- -
-
-
kirstie.mercer@tomiatech.eu
- +33 (6)8 99 21 10 92
- —
-
- -
-
-
marcus.milligan@fortyfour.me
- +33 (6)8 38 98 96 07
- —
-
- -
-
-
MM
-
Madeleine Milling
-
- madeleine.milling@acousticom.gov
- +33 (4)0 61 39 16 43
- —
-
- -
-
-
IM
-
Isabelle Muldoon
-
- isabelle.muldoon@fastmart.co
- +33 (4)6 38 04 02 44
- —
-
- -
-
-
raymond.muldoon@thermolock.info
- +33 (7)2 68 87 05 72
- —
-
-
-
-
- -
-
-
jetta.neal@multiserv.net
- +33 (2)1 88 04 40 79
- —
-
-
-
-
- -
-
-
—
- +33 (3)0 31 26 10 64
- —
-
-
-
-
- -
-
-
jay.padeutell@noemail.net
- —
- —
-
- -
-
-
travis.paquette@zatheon.co
- +33 (2)7 21 10 25 88
- —
-
- -
-
-
jamie.paschall@acousticom.me
- +33 (4)9 34 94 87 29
- —
-
- -
-
-
raylene.pullman@viewtopia.me
- +33 (0)7 90 41 79 27
- —
-
-
-
-
- -
-
-
neida.remus@dynalab.club
- +33 (5)6 42 50 42 12
- —
-
- -
-
-
kurt.rohloff@corexts.org
- +33 (9)8 32 78 45 41
- —
-
-
-
-
- -
-
-
hannah.sager@haltheon.eu
- +33 (0)0 16 15 45 65
- —
-
- -
-
-
aiden.smit@tomiatech.co
- +33 (6)9 42 00 67 88
- —
-
- -
-
-
travis.sprowl@vtgrafix.name
- +33 (8)9 22 15 20 68
- —
-
- -
-
-
danny.stine@celmax.club
- +33 (3)8 94 64 96 17
- —
-
- -
-
-
rosanne.stine@infracom.edu
- +33 (9)0 11 98 31 70
- —
-
- -
-
-
ivan.bryd@strategyline.eu
- +33 (3)8 15 32 28 30
- —
-
-
-
-
-
-
- -
-
-
gavin.wallis@infratouch.biz
- +33 (2)4 15 56 27 30
- —
-
- -
-
-
raylene.wallis@corerobotics.name
- +33 (8)2 20 49 87 28
- —
-
- -
-
-
anton.brandt@westercom.me
- +33 (2)6 47 62 10 86
- —
-
- -
-
-
selma.keesee@westgate.net
- +33 (7)6 39 42 48 60
- —
-
- -
-
-
madelyn.woodrum@airconix.xyz
- +33 (8)4 54 36 85 66
- —
-
- -
-
-
mitch.woodrum@opticast.org
- +33 (9)7 70 95 95 36
- —
-
-
-
-
-
-
-
"
-`;
-
-exports[`ContactsListModal should render examples: ContactsListModal 1`] = `
-"
"
-`;
-
-exports[`DateMonthPicker should render examples: DateMonthPicker 1`] = `
-"
-
-
-
-
-
"
-`;
-
-exports[`Dialog should render examples: Dialog 1`] = `
-"
"
-`;
-
-exports[`DropdownText should render examples: DropdownText 1`] = `
-"
-
-
Default
-
-
-
-
-
-
-
-
-
-
-
Disabled
-
-
-
-
-
-
-
-
-
-
-
-
-
-
This is a long text without ellipsis without restrictive container
-
-
-
-
-
-
This is a long text without ellipsis inside a restrictive container
-
-
-
-
-
-
This is a long text with ellipsis inside a container
-
-
-
-
-
-
Text with
breaking spaces
inside content
-
-
-
-
-
-
Space between text and icon
-
-
-
-
"
-`;
-
-exports[`Empty should render examples: Empty 1`] = `
-"
-
-
-
-
This list is empty
-
Try adding some content to this list
-
-
-
-
"
-`;
-
-exports[`Empty should render examples: Empty 2`] = `
-"
-
-
With functional SVG
-
Try adding some content to this list
-
-
-
-
With IMG
-
Try adding some content to this list
-
-
-
-
With SVG
-
Try adding some content to this list
-
-
-
-
With Icon component
-
Try adding some content to this list
-
-
-
"
-`;
-
-exports[`Hero should render examples: Hero 1`] = `
-"
-
-
Connect your bank accounts
-
-
-
Control your budget
-
Summary of all your accounts at a glance
-
-
-
Save Time
-
Your invoices at your fingertips directly from your statements
-
-
-
Cozy is working for you
-
Automatic follow-up of your medical expenses
-
-
-
-
-
"
-`;
-
-exports[`HistoryRow should render examples: HistoryRow 1`] = `
-"
"
-`;
-
-exports[`IconStack should render examples: IconStack 1`] = `
-"
"
-`;
-
-exports[`InputGroup should render examples: InputGroup 1`] = `
-"
"
-`;
-
-exports[`InputGroup should render examples: InputGroup 2`] = `
-"
"
-`;
-
-exports[`InputGroup should render examples: InputGroup 3`] = `
-"
"
-`;
-
-exports[`InputGroup should render examples: InputGroup 4`] = `
-"
"
-`;
-
-exports[`InputGroup should render examples: InputGroup 5`] = `
-"
"
-`;
-
-exports[`InputGroup should render examples: InputGroup 6`] = `
-"
"
-`;
-
-exports[`InputGroup should render examples: InputGroup 7`] = `
-"
"
-`;
-
-exports[`Label should render examples: Label 1`] = `
-"
"
-`;
-
-exports[`Label should render examples: Label 2`] = `
-"
"
-`;
-
-exports[`Label should render examples: Label 3`] = `
-"
"
-`;
-
-exports[`Labs/CollectionField should render examples: Labs/CollectionField 1`] = `
-"
-
-
-
-
-
-
-
-
-
-
-
"
-`;
-
-exports[`ListItemText should render examples: ListItemText 1`] = `
-"
"
-`;
-
-exports[`ListItemText should render examples: ListItemText 2`] = `
-"
-
I'm a primary textI'm a secondary text
-
"
-`;
-
-exports[`ListItemText should render examples: ListItemText 3`] = `
-"
-
I'm a primary text
Augusta Ada King-Noel, Countess of Lovelace (née Byron; 10 December 1815 – 27 November 1852) was an English mathematician and writer, chiefly known for her work on Charles Babbage's proposed mechanical general-purpose computer, the Analytical Engine. She was the first to recognis‎e that the machine had applications beyond pure calculation, and published the first algorithm intended to be carried out by such a machine. As a result, she is often regarded as the first to recognise the full potential of a \\"computing machine\\" and the first computer programmer.‎
-
-
"
-`;
-
-exports[`OrderedList should render examples: OrderedList 1`] = `
-"
-
- - Do this
- - Then do this
- - And finally do this
-
-
"
-`;
-
-exports[`Paper should render examples: Paper 1`] = `
-"
-
-
-
-
This is a sheet of paper
-
-
elevation 0
-
-
Paper can be used to build surface or other elements for your application.
-
-
-
This is a sheet of paper
-
-
elevation 1
-
-
Paper can be used to build surface or other elements for your application.
-
-
-
This is a sheet of paper
-
-
elevation 4
-
-
Paper can be used to build surface or other elements for your application.
-
-
-
This is a sheet of paper
-
-
elevation 16
-
-
Paper can be used to build surface or other elements for your application.
-
-
-
This is a sheet of paper
-
-
elevation 24
-
-
Paper can be used to build surface or other elements for your application.
-
-
-
This is a sheet of paper
-
-
elevation 25
-
-
Paper can be used to build surface or other elements for your application.
-
-
-
"
-`;
-
-exports[`PasswordExample should render examples: PasswordExample 1`] = `"
Cl4ude€st1Nu@ge
"`;
-
-exports[`PasswordExample should render examples: PasswordExample 2`] = `"
Claude est le meilleur nuage !
"`;
-
-exports[`PieChart should render examples: PieChart 1`] = `
-"
-
-
-
-
-
-
-
105 €
-
on the period
-
-
-
-
-
"
-`;
-
-exports[`Progress should render examples: Progress 1`] = `
-"
"
-`;
-
-exports[`ProgressionBanner should render examples: ProgressionBanner 1`] = `
-"
"
-`;
-
-exports[`Radios should render examples: Radios 1`] = `
-"
"
-`;
-
-exports[`Radios should render examples: Radios 2`] = `
-"
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 1`] = `
-"
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 2`] = `
-"
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 3`] = `
-"
-
Container height: 12rem.
-
-
-
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 4`] = `
-"
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 5`] = `
-"
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 6`] = `
-"
-
-
-
-
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 7`] = `
-"
-
-
-
-
-
-
I am a tiny SelectBox
-
-
-
-
-
-
-
-
-
-
-
I am a medium SelectBox
-
-
-
-
-
-
-
-
-
-
-
I am a large SelectBox
-
-
-
-
-
-
-
-
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 8`] = `
-"
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 9`] = `
-"
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 10`] = `
-"
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 11`] = `
-"
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 12`] = `
-"
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 13`] = `
-"
"
-`;
-
-exports[`SelectBox should render examples: SelectBox 14`] = `
-"
"
-`;
-
-exports[`Sidebar should render examples: Sidebar 1`] = `
-"
-
-
"
-`;
-
-exports[`Spinner should render examples: Spinner 1`] = `
-"
"
-`;
-
-exports[`Spinner should render examples: Spinner 2`] = `
-"
-
blue (default):
or
grey:
white:
red:
-
-
"
-`;
-
-exports[`Spinner should render examples: Spinner 3`] = `
-"
"
-`;
-
-exports[`Spinner should render examples: Spinner 4`] = `
-"
-
tiny:
small:
medium (default):
or
large:
xlarge:
xxlarge:
-
-
"
-`;
-
-exports[`Spinner should render examples: Spinner 5`] = `
-"
"
-`;
-
-exports[`Switch should render examples: Switch 1`] = `
-"
"
-`;
-
-exports[`Textarea should render examples: Textarea 1`] = `"
"`;
-
-exports[`Textarea should render examples: Textarea 2`] = `"
"`;
-
-exports[`Textarea should render examples: Textarea 3`] = `"
"`;
-
-exports[`Textarea should render examples: Textarea 4`] = `
-"
"
-`;
-
-exports[`Textarea should render examples: Textarea 5`] = `
-"
"
-`;
-
-exports[`Textarea should render examples: Textarea 6`] = `
-"
"
-`;
-
-exports[`UnorderedList should render examples: UnorderedList 1`] = `
-"
-
- - Do this
- - And this
- - Oh, and this, too
-
-
"
-`;
-
-exports[`Wizard should render examples: Wizard 1`] = `
-"
-
-
-
-
-
-
-
There is an error
-
-
-
-
-
"
-`;
diff --git a/react/deprecated/ActionMenu/__snapshots__/index.spec.jsx.snap b/react/deprecated/ActionMenu/__snapshots__/index.spec.jsx.snap
deleted file mode 100644
index 8aeb4d2826..0000000000
--- a/react/deprecated/ActionMenu/__snapshots__/index.spec.jsx.snap
+++ /dev/null
@@ -1,157 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`ActionMenu should render as expected 1`] = `
-
-
-
-
-
-
-`;
-
-exports[`ActionMenu should support null children 1`] = `
-
-`;
diff --git a/react/deprecated/ActionMenu/index.spec.jsx b/react/deprecated/ActionMenu/index.spec.jsx
deleted file mode 100644
index 814c9aaa28..0000000000
--- a/react/deprecated/ActionMenu/index.spec.jsx
+++ /dev/null
@@ -1,115 +0,0 @@
-import { render } from '@testing-library/react'
-import { mount } from 'enzyme'
-import React from 'react'
-import { act } from 'react-dom/test-utils'
-
-import ActionMenu, { ActionMenuItem, ActionMenuRadio } from '.'
-import Icon from '../../Icon'
-import FileIcon from '../../Icons/File'
-import WarningIcon from '../../Icons/Warning'
-import { fixPopperTesting } from '../../Popper/testing'
-import Typography from '../../Typography'
-import { BreakpointsProvider } from '../../providers/Breakpoints'
-
-xdescribe('ActionMenu', () => {
- fixPopperTesting()
-
- // The update-not-wrapping-in-act warning is disabled for ActionMenuWrapper since
- // we have not found how to remove the "update" happening when mounting the
- // ActionMenu.
- let originalConsoleError = console.error
-
- beforeEach(() => {
- // eslint-disable-next-line no-console
- console.error = function (msg, arg) {
- if (
- msg.includes('An update to %s inside a test was not wrapped in act') &&
- arg == 'ActionMenuWrapper'
- ) {
- return
- } else {
- return originalConsoleError.apply(this, arguments)
- }
- }
- })
-
- afterEach(() => {
- // eslint-disable-next-line no-console
- console.error = originalConsoleError
- })
-
- it('should support null children', async () => {
- const comp = mount(
-
-
- Item 1
- {null}
-
-
- )
- // Remove an update was not wrapped in act() warning
- await act(async () => {})
- expect(comp.find(ActionMenuItem).parent().getElement()).toMatchSnapshot()
- })
-
- it('should support auto-closing the menu', async () => {
- const closeMenu = jest.fn()
- const menuAction1 = jest.fn()
- const menuAction2 = jest.fn()
- const menuActionStoppingPropagation = e => {
- e.stopPropagation()
- menuAction2()
- }
-
- const comp = mount(
-
-
- Item 1
-
- Item 2
-
-
-
- )
-
- await act(async () => {
- comp.find(ActionMenuItem).at(1).simulate('click')
- })
- expect(menuAction2).toHaveBeenCalled()
- expect(closeMenu).not.toHaveBeenCalled()
-
- act(() => {
- comp.find(ActionMenuItem).at(0).simulate('click')
- })
- expect(menuAction1).toHaveBeenCalled()
- expect(closeMenu).toHaveBeenCalled()
- })
-
- it('should render as expected', async () => {
- const { container } = render(
-
- }
- right={}
- onClick={() => alert('click')}
- >
- Item 1 with onclick action
-
- }>
- Item 2 with dialog action
-
- }>Item 3
- }>
-
- Item 4
-
-
- Descriptive text to elaborate on what item 3 does.
-
-
-
- )
-
- expect(container).toMatchSnapshot()
- })
-})
diff --git a/react/deprecated/Alerter/__snapshots__/alerter.spec.js.snap b/react/deprecated/Alerter/__snapshots__/alerter.spec.js.snap
deleted file mode 100644
index b3fbc3d047..0000000000
--- a/react/deprecated/Alerter/__snapshots__/alerter.spec.js.snap
+++ /dev/null
@@ -1,88 +0,0 @@
-// Jest Snapshot v1, https://goo.gl/fbAQLP
-
-exports[`Alerter component handles dismiss provided to buttonAction 1`] = `
-
-
-
- Test alert with button
-
-
-
-
-`;
-
-exports[`Alerter component renders button if buttonText provided 1`] = `
-
-
-
- Test alert with button
-
-
-
-
-`;
-
-exports[`Alerter component renders correctly an error alert 1`] = `
-
-`;
-
-exports[`Alerter component renders correctly an info alert 1`] = `
-
-`;
-
-exports[`Alerter component renders correctly an success alert 1`] = `
-
-
-
- Test success alert
-
-
-
-`;
diff --git a/react/deprecated/Alerter/alerter.spec.js b/react/deprecated/Alerter/alerter.spec.js
deleted file mode 100644
index 33c6f6e3e6..0000000000
--- a/react/deprecated/Alerter/alerter.spec.js
+++ /dev/null
@@ -1,78 +0,0 @@
-'use strict'
-/* eslint-env jest */
-
-import { shallow } from 'enzyme'
-import React from 'react'
-
-import Alerter from '.'
-import Alert from './Alert'
-import Button from '../Button'
-
-describe('Alerter component', () => {
- beforeEach(() => {
- Alerter.reset()
- })
- //
- ;['info', 'success', 'error'].forEach(type => {
- it(`renders correctly an ${type} alert`, () => {
- const wrapper = shallow(
)
- Alerter[type](`Test ${type} alert`)
- expect(wrapper.find(Alert).dive().getElement()).toMatchSnapshot()
- })
- })
-
- it('should not render too much alerts', () => {
- const wrapper = shallow(
)
- Alerter.info(`Test 1`)
- Alerter.info(`Test 2`)
- Alerter.info(`Test 3`)
- expect(wrapper.find(Alert).length).toBe(3)
- })
-
- it('renders button if buttonText provided', () => {
- const wrapper = shallow(
)
- Alerter.info(`Test alert with button`, {
- buttonText: 'BTN'
- })
- expect(wrapper.find(Alert).dive().getElement()).toMatchSnapshot()
- })
-
- it('handles dismiss provided to buttonAction', () => {
- const alerterWrapper = shallow(
)
- Alerter.info(`Test alert with button`, {
- buttonText: 'BTN',
- buttonAction: dismiss => {
- console.log('DISMISS')
- dismiss()
- },
- duration: 20000
- })
- const alertWrapper = alerterWrapper.find(Alert)
- const alert = alertWrapper.dive()
- expect(alert.getElement()).toMatchSnapshot()
- alert.instance().base = document.createElement('div')
- // we have to wait the same delay as in the Alerter didMount
- setTimeout(() => {
- expect(alert.state('hidden')).toBe(false)
- alert.children().find(Button).simulate('click')
- expect(alert.state('hidden')).toBe(true)
- }, 20)
- })
-
- it('handles programmatic removal', () => {
- const wrapper = shallow(
)
- const notif = Alerter.info(`Test alert with button`, {
- duration: 20000
- })
- Alerter.info(`Test another alert`, {
- duration: 20000
- })
- expect(wrapper.find(Alert).length).toBe(2)
- Alerter.removeNotification(notif)
- expect(wrapper.find(Alert).length).toBe(1)
-
- // Nothing should happen if we try to remove a non existing notification
- Alerter.removeNotification(notif)
- expect(wrapper.find(Alert).length).toBe(1)
- })
-})
diff --git a/react/deprecated/InfosCarrousel/index.spec.jsx b/react/deprecated/InfosCarrousel/index.spec.jsx
deleted file mode 100644
index 484aac83c7..0000000000
--- a/react/deprecated/InfosCarrousel/index.spec.jsx
+++ /dev/null
@@ -1,71 +0,0 @@
-import React from 'react'
-import { act } from 'react-dom/test-utils'
-import SwipeableViews from 'react-swipeable-views'
-
-import InfosCarrousel from '.'
-import IconButton from '../../IconButton'
-import Typography from '../../Typography'
-import Button from '../Button'
-import Infos from '../Infos'
-
-// This is necessary for tests to be predictable
-const swipeableProps = { disableLazyLoading: true }
-
-const Example = ({ numberOfChildren = 2 }) => (
-
-
- {[...new Array(numberOfChildren)].map((child, index) => (
-
- News {index}
- Breaking news {index}
- >
- }
- action={}
- />
- ))}
-
-
-)
-
-const getArrowsDisabledProps = root =>
- root
- .find(IconButton)
- .map(node => node.props())
- .map(x => x.disabled)
-
-const simulateSwipeToSlideIndex = (root, slideIndex) => {
- act(() => {
- root.find(SwipeableViews).props().onChangeIndex(slideIndex)
- })
- root.update()
-}
-
-describe('InfosCarrousel', () => {
- const setup = () => {
- const root = mount(
)
- return { root }
- }
-
- it('should update arrows after swipe', () => {
- const { root } = setup()
- expect(getArrowsDisabledProps(root)).toEqual([true, false])
- simulateSwipeToSlideIndex(root, 1)
- expect(getArrowsDisabledProps(root)).toEqual([false, true])
- simulateSwipeToSlideIndex(root, 0)
- expect(getArrowsDisabledProps(root)).toEqual([true, false])
- })
-
- it('should change index when a child is removed', () => {
- const root = mount(
)
- expect(root.find(SwipeableViews).prop('index')).toEqual(0)
- simulateSwipeToSlideIndex(root, 2)
- expect(root.find(SwipeableViews).prop('index')).toEqual(2)
- root.setProps({ numberOfChildren: 2 })
- root.update()
- expect(root.find(Infos).length).toBe(2)
- expect(root.find(SwipeableViews).prop('index')).toEqual(1)
- })
-})
diff --git a/react/deprecated/Modal/index.spec.jsx b/react/deprecated/Modal/index.spec.jsx
deleted file mode 100644
index b756959a39..0000000000
--- a/react/deprecated/Modal/index.spec.jsx
+++ /dev/null
@@ -1,70 +0,0 @@
-import { mount } from 'enzyme'
-import React, { useState } from 'react'
-import { act } from 'react-dom/test-utils'
-
-import Modal, { BODY_CLASS } from '.'
-import { BreakpointsProvider } from '../../providers/Breakpoints'
-
-describe('Modal', () => {
- const Example = () => {
- const [showModal, setShowModal] = useState(false)
- const [showModal2, setShowModal2] = useState(false)
- return (
-
- {showModal ? 1 : null}
- {showModal2 ? 2 : null}
-
- )
- }
-
- const clickNthButton = (root, n) =>
- root.find('button').at(n).props().onClick()
-
- const mountFirstModal = root => clickNthButton(root, 0)
- const mountSecondModal = root => clickNthButton(root, 1)
- const unmountSecondModal = root => clickNthButton(root, 2)
- const unmountFirstModal = root => clickNthButton(root, 3)
-
- const hasModalBodyClass = () => document.body.classList.contains(BODY_CLASS)
-
- afterEach(() => {
- document.body.classList.remove(BODY_CLASS)
- })
-
- it('should apply a class to the body when mounted', () => {
- const root = mount(
)
- expect(hasModalBodyClass()).toBe(false)
- act(() => {
- mountFirstModal(root)
- })
- expect(hasModalBodyClass()).toBe(true)
- act(() => {
- unmountFirstModal(root)
- })
- expect(hasModalBodyClass()).toBe(false)
- })
-
- it('should not remove the class if two modals were mounted and the second one is removed', () => {
- const root = mount(
)
- expect(hasModalBodyClass()).toBe(false)
- act(() => {
- mountFirstModal(root)
- })
- expect(hasModalBodyClass()).toBe(true)
- act(() => {
- mountSecondModal(root)
- })
- act(() => {
- unmountSecondModal(root)
- })
- expect(hasModalBodyClass()).toBe(true)
- act(() => {
- unmountFirstModal(root)
- })
- expect(hasModalBodyClass()).toBe(false)
- })
-})
diff --git a/react/deprecated/ViewStack/example.jsx b/react/deprecated/ViewStack/example.jsx
index 88fef78390..c07614354a 100644
--- a/react/deprecated/ViewStack/example.jsx
+++ b/react/deprecated/ViewStack/example.jsx
@@ -17,7 +17,7 @@ const Slide = ({ number }) => {
const handleClickPop = async () => {
await stackPop()
- // No alerts during enzyme tests
+ // No alerts during tests
if (number === 2 && !global.mount) {
alert('You went back to the first slide')
}
diff --git a/react/deprecated/ViewStack/index.spec.jsx b/react/deprecated/ViewStack/index.spec.jsx
deleted file mode 100644
index 325e3ed32b..0000000000
--- a/react/deprecated/ViewStack/index.spec.jsx
+++ /dev/null
@@ -1,64 +0,0 @@
-import { mount } from 'enzyme'
-import React from 'react'
-import { act } from 'react-dom/test-utils'
-import SwipeableViews from 'react-swipeable-views'
-
-import ViewStack from '.'
-import { Slide } from './example'
-import Button from '../Button'
-
-const findButtonWithLabel = (root, label) =>
- root.findWhere(n => n.type() == Button && n.props().label === label)
-
-describe('ViewStack', () => {
- beforeEach(() => {
- const originalError = console.error.bind(console)
-
- // Ignore act's warning, since act does not support async logic and we have
- // a sleep when popping to wait for the animation
- jest.spyOn(console, 'error').mockImplementation(function (message) {
- if (
- !message.includes(
- 'An update to %s inside a test was not wrapped in act'
- )
- ) {
- originalError.apply(this, arguments)
- }
- })
- })
-
- afterEach(() => {
- jest.restoreAllMocks()
- })
-
- it('should push / pop views', async () => {
- const root = mount(
-
-
-
- )
- expect(root.find(Slide).props().number).toBe(1)
- act(() => {
- findButtonWithLabel(root, 'stack').props().onClick()
- })
- root.update()
-
- const swiperProps = root.find(SwipeableViews).props()
- expect(swiperProps.children.length).toBe(2)
- expect(swiperProps.index).toBe(1)
-
- let prom
- act(() => {
- prom = findButtonWithLabel(root, 'pop').props().onClick()
- })
- root.update()
- const swiperProps2 = root.find(SwipeableViews).props()
- expect(swiperProps2.index).toBe(0)
- expect(swiperProps2.children.length).toBe(2) // waiting for animation
-
- await prom
- root.update()
- const swiperProps3 = root.find(SwipeableViews).props()
- expect(swiperProps3.children.length).toBe(1)
- })
-})
diff --git a/react/examples.spec.jsx b/react/examples.spec.jsx
deleted file mode 100644
index 136193d10c..0000000000
--- a/react/examples.spec.jsx
+++ /dev/null
@@ -1,67 +0,0 @@
-import path from 'path'
-
-import testFromStyleguidist from '../test/testFromStyleguidist'
-
-// Popper does not work well inside of jest as it heavily relies on DOM APIs (see https://github.com/popperjs/popper-core/issues/478).
-jest.mock('@material-ui/core/Popper', () => {
- return ({ children }) => children
-})
-
-const makeRequire = subpath => m => {
- if (m.indexOf('.') === 0) {
- return require('./' + path.join(subpath, m))
- } else {
- return require(m)
- }
-}
-
-const testComponent = (ComponentName, options) => {
- testFromStyleguidist(
- ComponentName,
- path.join(__dirname, ComponentName, 'Readme.md'),
- makeRequire(ComponentName),
- options
- )
-}
-
-// Please keep the list sorted
-testComponent('Alert')
-testComponent('AppTitle')
-testComponent('Avatar')
-testComponent('Badge')
-testComponent('Banner')
-testComponent('BarButton')
-testComponent('Buttons')
-testComponent('Card')
-testComponent('Checkbox')
-testComponent('Chips')
-testComponent('ContactsList')
-testComponent('ContactsListModal')
-testComponent('DateMonthPicker')
-testComponent('DropdownText')
-testComponent('Dialog') // Prints error: Functions are not valid as a React child
-testComponent('Empty')
-// testComponent('Field') // fuzzy test, need to investigate why
-testComponent('Hero')
-testComponent('HistoryRow')
-// testComponent('Icon') // fuzzy test, need to investigate why
-// testComponent('IconButton') // fuzzy test, need to investigate why
-testComponent('IconStack')
-testComponent('InputGroup')
-testComponent('Label')
-testComponent('Labs/CollectionField')
-testComponent('ListItemText')
-testComponent('OrderedList')
-testComponent('Paper')
-testComponent('PasswordExample')
-testComponent('PieChart')
-testComponent('Progress')
-testComponent('ProgressionBanner')
-testComponent('Radios')
-testComponent('SelectBox')
-testComponent('Sidebar')
-testComponent('Spinner')
-testComponent('Switch')
-testComponent('Textarea')
-testComponent('UnorderedList')
-testComponent('Wizard')
diff --git a/react/hooks/useClientErrors.spec.jsx b/react/hooks/useClientErrors.spec.jsx
index 77fb5246ac..ef86b8adae 100644
--- a/react/hooks/useClientErrors.spec.jsx
+++ b/react/hooks/useClientErrors.spec.jsx
@@ -1,11 +1,11 @@
-import { renderHook, act } from '@testing-library/react-hooks'
-import { shallow } from 'enzyme'
+import { screen, render, act } from '@testing-library/react'
+import { renderHook } from '@testing-library/react-hooks'
import React from 'react'
-import { CozyProvider } from 'cozy-client'
import { FetchError } from 'cozy-stack-client'
import useClientErrors from './useClientErrors'
+import DemoProvider from '../providers/DemoProvider'
function createCozyClient() {
return {
@@ -14,9 +14,15 @@ function createCozyClient() {
}
}
+jest.mock('../deprecated/QuotaAlert', () => ({ onClose }) => (
+ <>
+ QuotaAlert
Dismiss
+ >
+))
+
function createWrapper(client = createCozyClient()) {
function Wrapper({ children }) {
- return
{children}
+ return
{children}
}
return Wrapper
}
@@ -27,7 +33,7 @@ function renderWrappedHook(client) {
}
function wrappedShallow(tree, client) {
- return shallow(tree, { wrappingComponent: createWrapper(client) })
+ return render(tree, { wrapper: createWrapper(client) })
}
describe('useClientErrors', () => {
@@ -47,14 +53,12 @@ describe('useClientErrors', () => {
it('displays nothing by default', () => {
const { result } = renderWrappedHook()
const { ClientErrors } = result.current
- const node = wrappedShallow(
)
- expect(node).toHaveLength(0)
+ wrappedShallow(
)
+
+ expect(screen.queryByText('QuotaAlert')).not.toBeInTheDocument()
})
describe('for quota errors', () => {
- const findQuotaAlert = node => {
- return node.at(0).dive()
- }
const setup = async () => {
const client = createCozyClient()
const response = new Response(null, {
@@ -81,21 +85,9 @@ describe('useClientErrors', () => {
}
it('displays a a QuotaAlert', async () => {
- const { node } = await setup()
- expect(node).toHaveLength(1)
- expect(findQuotaAlert(node).type().name).toEqual('QuotaAlert')
- })
-
- it('can be dismissed', async () => {
- const { node, result, client } = await setup()
- const quotaAlert = findQuotaAlert(node)
- const onClose = quotaAlert.props().onClose
- act(() => onClose())
+ await setup()
- // re-render ClientErrors returned by the hook
- const { ClientErrors } = result.current
- const updatedNode = wrappedShallow(
, client)
- expect(updatedNode.at(0).length).toBe(0)
+ expect(screen.queryByText('QuotaAlert')).toBeInTheDocument()
})
})
})
diff --git a/react/providers/I18n/index.spec.jsx b/react/providers/I18n/index.spec.jsx
index 742bedeea0..f46a52e886 100644
--- a/react/providers/I18n/index.spec.jsx
+++ b/react/providers/I18n/index.spec.jsx
@@ -1,4 +1,4 @@
-import { render, fireEvent } from '@testing-library/react'
+import { render, fireEvent, screen } from '@testing-library/react'
import PropTypes from 'prop-types'
import React, { useState } from 'react'
@@ -34,23 +34,31 @@ I18nHelloWorldOldAPI.contextTypes = {
describe('new context api', () => {
it('should provide t and f and lang through useI18n hook', () => {
- const root = mount(
+ render(
locales}>
)
- expect(root.html()).toBe('
Hello World !
6 Jan
en
')
+ expect(
+ screen.getByText('Hello World !', { exact: false })
+ ).toBeInTheDocument()
+ expect(screen.getByText('6 Jan', { exact: false })).toBeInTheDocument()
+ expect(screen.getByText('en', { exact: false })).toBeInTheDocument()
})
})
describe('old context api', () => {
it('should provide t and f and lang through old context API', () => {
- const root = mount(
+ render(
locales}>
)
- expect(root.html()).toBe('
Hello World !
6 Jan
en
')
+ expect(
+ screen.getByText('Hello World !', { exact: false })
+ ).toBeInTheDocument()
+ expect(screen.getByText('6 Jan', { exact: false })).toBeInTheDocument()
+ expect(screen.getByText('en', { exact: false })).toBeInTheDocument()
})
})
diff --git a/react/providers/I18n/withLocales.spec.jsx b/react/providers/I18n/withLocales.spec.jsx
index 83b3c8dda9..62cec372d4 100644
--- a/react/providers/I18n/withLocales.spec.jsx
+++ b/react/providers/I18n/withLocales.spec.jsx
@@ -1,3 +1,4 @@
+import { render, screen } from '@testing-library/react'
import React from 'react'
import { I18n } from '.'
@@ -29,9 +30,8 @@ class MockComponent extends React.Component {
}
describe('with locales', () => {
- let root
const setup = ({ lang, Component }) => {
- root = mount(
+ render(
globalLocales[localeCode]}>
@@ -42,9 +42,9 @@ describe('with locales', () => {
describe(description, () => {
it('should provide t with correct locale strings', () => {
setup({ lang: 'en', Component })
- expect(root.text()).toBe('Hello local world !')
+ expect(screen.getByText('Hello local world !')).toBeInTheDocument()
setup({ lang: 'fr', Component })
- expect(root.text()).toBe('Bonjour le monde local !')
+ expect(screen.getByText('Bonjour le monde local !')).toBeInTheDocument()
})
})
}
diff --git a/test/jestsetup.js b/test/jestsetup.js
index c34ca5d390..cd29c6653e 100644
--- a/test/jestsetup.js
+++ b/test/jestsetup.js
@@ -1,13 +1,7 @@
import '@testing-library/jest-dom/extend-expect'
-import { configure, mount, shallow } from 'enzyme'
-import Adapter from 'enzyme-adapter-react-16'
import fetch from 'whatwg-fetch'
-configure({ adapter: new Adapter() })
-
global.fetch = fetch
-global.mount = mount
-global.shallow = shallow
const isDeprecatedLifecycleWarning = (msg, componentName) => {
return (
diff --git a/test/testFromStyleguidist.js b/test/testFromStyleguidist.js
deleted file mode 100644
index ec58f30bce..0000000000
--- a/test/testFromStyleguidist.js
+++ /dev/null
@@ -1,85 +0,0 @@
-import React from 'react'
-import fs from 'fs'
-import pretty from 'pretty'
-import Preview from 'react-styleguidist/lib/client/rsg-components/Preview'
-import Context from 'react-styleguidist/lib/client/rsg-components/Context'
-import chunkify from 'react-styleguidist/lib/loaders/utils/chunkify'
-
-import * as content from '../docs/fixtures/content'
-
-const sleep = ms => new Promise(resolve => setTimeout(resolve, ms))
-
-const testFromStyleguidist = (
- name,
- markdown,
- require,
- { delay } = { delay: 0 }
-) => {
- const evalInContext = a =>
- // eslint-disable-next-line no-new-func
- new Function(
- 'require',
- 'content',
- 'isTesting',
- 'state',
- 'setState',
- `const React = require("react");
- ` + a
- ).bind(null, require, content, () => true)
-
- const context = {
- config: {
- compilerConfig: {
- objectAssign: 'Object.assign',
- target: { ie: 11 },
- transforms: {
- modules: false,
- dangerousTaggedTemplateString: true,
- asyncAwait: false
- }
- }
- },
- codeRevision: 1337
- }
- const Provider = props =>
-
- // TouchRipples can cause flaky tests
- const touchRippleRx = /
<\/span>/g
- const removeTouchRipples = html => {
- return html.replace(touchRippleRx, '')
- }
-
- describe(name, () => {
- it('should render examples', done => {
- let doneCounter = 0
- const Readme = fs.readFileSync(markdown)
- const chunks = chunkify(Readme)
- const codes = chunks.filter(x => x.type === 'code')
- const rendered = []
- const finish = () => {
- rendered.forEach(rendered => {
- expect(rendered).toMatchSnapshot(name)
- })
- done()
- }
- codes.forEach(async code => {
- const root = mount(
-
-
-
- )
- await sleep(delay) // some components (like the ActionMenu) are flaky due to external libs
- requestAnimationFrame(async () => {
- await root.update()
- rendered.push(pretty(removeTouchRipples(root.html())))
- doneCounter++
- if (doneCounter === codes.length) {
- finish()
- }
- })
- })
- })
- })
-}
-
-export default testFromStyleguidist
diff --git a/yarn.lock b/yarn.lock
index 79780c0159..cc901006e9 100644
--- a/yarn.lock
+++ b/yarn.lock
@@ -2739,13 +2739,6 @@
dependencies:
"@babel/types" "^7.3.0"
-"@types/cheerio@^0.22.22":
- version "0.22.30"
- resolved "https://registry.yarnpkg.com/@types/cheerio/-/cheerio-0.22.30.tgz#6c1ded70d20d890337f0f5144be2c5e9ce0936e6"
- integrity sha512-t7ZVArWZlq3dFa9Yt33qFBQIK4CQd1Q3UJp0V+UhP6vgLWLM6Qug7vZuRSGXg45zXeB1Fm5X2vmBkEX58LV2Tw==
- dependencies:
- "@types/node" "*"
-
"@types/color-name@^1.1.1":
version "1.1.1"
resolved "https://registry.yarnpkg.com/@types/color-name/-/color-name-1.1.1.tgz#1c1261bbeaa10a8055bbc5d8ab84b7b2afc846a0"
@@ -3438,21 +3431,6 @@ aggregate-error@^3.0.0:
clean-stack "^2.0.0"
indent-string "^3.2.0"
-airbnb-prop-types@^2.16.0:
- version "2.16.0"
- resolved "https://registry.yarnpkg.com/airbnb-prop-types/-/airbnb-prop-types-2.16.0.tgz#b96274cefa1abb14f623f804173ee97c13971dc2"
- integrity sha512-7WHOFolP/6cS96PhKNrslCLMYAI8yB1Pp6u6XmxozQOiZbsI5ycglZr5cHhBFfuRcQQjzCMith5ZPZdYiJCxUg==
- dependencies:
- array.prototype.find "^2.1.1"
- function.prototype.name "^1.1.2"
- is-regex "^1.1.0"
- object-is "^1.1.2"
- object.assign "^4.1.0"
- object.entries "^1.1.2"
- prop-types "^15.7.2"
- prop-types-exact "^1.2.0"
- react-is "^16.13.1"
-
ajv-errors@^1.0.0:
version "1.0.1"
resolved "https://registry.yarnpkg.com/ajv-errors/-/ajv-errors-1.0.1.tgz#f35986aceb91afadec4102fbd85014950cefa64d"
@@ -3801,34 +3779,6 @@ array-unique@^0.3.2:
resolved "https://registry.yarnpkg.com/array-unique/-/array-unique-0.3.2.tgz#a894b75d4bc4f6cd679ef3244a9fd8f46ae2d428"
integrity sha1-qJS3XUvE9s1nnvMkSp/Y9Gri1Cg=
-array.prototype.filter@^1.0.0:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/array.prototype.filter/-/array.prototype.filter-1.0.1.tgz#20688792acdb97a09488eaaee9eebbf3966aae21"
- integrity sha512-Dk3Ty7N42Odk7PjU/Ci3zT4pLj20YvuVnneG/58ICM6bt4Ij5kZaJTVQ9TSaWaIECX2sFyz4KItkVZqHNnciqw==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
- es-abstract "^1.19.0"
- es-array-method-boxes-properly "^1.0.0"
- is-string "^1.0.7"
-
-array.prototype.find@^2.1.1:
- version "2.1.1"
- resolved "https://registry.yarnpkg.com/array.prototype.find/-/array.prototype.find-2.1.1.tgz#3baca26108ca7affb08db06bf0be6cb3115a969c"
- integrity sha512-mi+MYNJYLTx2eNYy+Yh6raoQacCsNeeMUaspFPh9Y141lFSsWxxB8V9mM2ye+eqiRs917J6/pJ4M9ZPzenWckA==
- dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.17.4"
-
-array.prototype.flat@^1.2.3:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.2.5.tgz#07e0975d84bbc7c48cd1879d609e682598d33e13"
- integrity sha512-KaYU+S+ndVqyUnignHftkwc58o3uVU1jzczILJ1tN2YaIZpFIKBiP/x/j97E5MVPsaCloPbqWLB/8qCTVvT2qg==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
- es-abstract "^1.19.0"
-
array.prototype.flat@^1.3.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/array.prototype.flat/-/array.prototype.flat-1.3.2.tgz#1476217df8cff17d72ee8f3ba06738db5b387d18"
@@ -5125,17 +5075,6 @@ chart.js@3.7.1:
resolved "https://registry.yarnpkg.com/chart.js/-/chart.js-3.7.1.tgz#0516f690c6a8680c6c707e31a4c1807a6f400ada"
integrity sha512-8knRegQLFnPQAheZV8MjxIXc5gQEfDFD897BJgv/klO/vtIyFFmgMXrNfgrXpbTr/XbTturxRgxIXx/Y+ASJBA==
-cheerio-select@^1.5.0:
- version "1.5.0"
- resolved "https://registry.yarnpkg.com/cheerio-select/-/cheerio-select-1.5.0.tgz#faf3daeb31b17c5e1a9dabcee288aaf8aafa5823"
- integrity sha512-qocaHPv5ypefh6YNxvnbABM07KMxExbtbfuJoIie3iZXX1ERwYmJcIiRrr9H05ucQP1k28dav8rpdDgjQd8drg==
- dependencies:
- css-select "^4.1.3"
- css-what "^5.0.1"
- domelementtype "^2.2.0"
- domhandler "^4.2.0"
- domutils "^2.7.0"
-
cheerio@^0.22.0:
version "0.22.0"
resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-0.22.0.tgz#a9baa860a3f9b595a6b81b1a86873121ed3a269e"
@@ -5158,19 +5097,6 @@ cheerio@^0.22.0:
lodash.reject "^4.4.0"
lodash.some "^4.4.0"
-cheerio@^1.0.0-rc.3:
- version "1.0.0-rc.10"
- resolved "https://registry.yarnpkg.com/cheerio/-/cheerio-1.0.0-rc.10.tgz#2ba3dcdfcc26e7956fc1f440e61d51c643379f3e"
- integrity sha512-g0J0q/O6mW8z5zxQ3A8E8J1hUgp4SMOvEoW/x84OwyHKe/Zccz83PVT4y5Crcr530FV6NgmKI1qvGTKVl9XXVw==
- dependencies:
- cheerio-select "^1.5.0"
- dom-serializer "^1.3.2"
- domhandler "^4.2.0"
- htmlparser2 "^6.1.0"
- parse5 "^6.0.1"
- parse5-htmlparser2-tree-adapter "^6.0.1"
- tslib "^2.2.0"
-
chokidar@1.5.2:
version "1.5.2"
resolved "https://registry.yarnpkg.com/chokidar/-/chokidar-1.5.2.tgz#293e728640cc93dd8277424334b3c6d4ad3a348a"
@@ -5774,15 +5700,6 @@ concat-stream@^2.0.0:
readable-stream "^3.0.2"
typedarray "^0.0.6"
-condense-newlines@^0.2.1:
- version "0.2.1"
- resolved "https://registry.yarnpkg.com/condense-newlines/-/condense-newlines-0.2.1.tgz#3de985553139475d32502c83b02f60684d24c55f"
- integrity sha1-PemFVTE5R10yUCyDsC9gaE0kxV8=
- dependencies:
- extend-shallow "^2.0.1"
- is-whitespace "^0.3.0"
- kind-of "^3.0.2"
-
config-chain@^1.1.11:
version "1.1.13"
resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.13.tgz#fad0795aa6a6cdaff9ed1b68e9dff94372c232f4"
@@ -5791,14 +5708,6 @@ config-chain@^1.1.11:
ini "^1.3.4"
proto-list "~1.2.1"
-config-chain@^1.1.12:
- version "1.1.12"
- resolved "https://registry.yarnpkg.com/config-chain/-/config-chain-1.1.12.tgz#0fde8d091200eb5e808caf25fe618c02f48e4efa"
- integrity sha512-a1eOIcu8+7lUInge4Rpf/n4Krkf3Dd9lqhljRzII1/Zno/kRtUWnznPO3jOKBmTEktkt3fkxisUcivoj0ebzoA==
- dependencies:
- ini "^1.3.4"
- proto-list "~1.2.1"
-
configstore@^3.0.0:
version "3.1.2"
resolved "https://registry.yarnpkg.com/configstore/-/configstore-3.1.2.tgz#c6f25defaeef26df12dd33414b001fe81a543f8f"
@@ -6381,7 +6290,7 @@ css-what@2.1, css-what@^2.1.2:
resolved "https://registry.yarnpkg.com/css-what/-/css-what-2.1.3.tgz#a6d7604573365fe74686c3f311c56513d88285f2"
integrity sha512-a+EPoD+uZiNfh+5fxw2nO9QwFa6nJe2Or35fGY6Ipw1R3R4AGz1d1TEZrCegvw2YTmZ0jXirGYlzxxpYSHwpEg==
-css-what@^5.0.0, css-what@^5.0.1:
+css-what@^5.0.0:
version "5.1.0"
resolved "https://registry.yarnpkg.com/css-what/-/css-what-5.1.0.tgz#3f7b707aadf633baf62c2ceb8579b545bb40f7fe"
integrity sha512-arSMRWIIFY0hV8pIxZMEfmMI47Wj3R/aWpZDDxWYCPEiOMv6tfOrnpDtgxBYPEQD4V0Y/958+1TdC3iWTFcUPw==
@@ -6977,11 +6886,6 @@ dir-glob@^3.0.0, dir-glob@^3.0.1:
dependencies:
path-type "^4.0.0"
-discontinuous-range@1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/discontinuous-range/-/discontinuous-range-1.0.0.tgz#e38331f0844bba49b9a9cb71c771585aab1bc65a"
- integrity sha1-44Mx8IRLukm5qctxx3FYWqsbxlo=
-
dns-equal@^1.0.0:
version "1.0.0"
resolved "https://registry.yarnpkg.com/dns-equal/-/dns-equal-1.0.0.tgz#b39e7f1da6eb0a75ba9c17324b34753c47e0654d"
@@ -7049,7 +6953,7 @@ dom-serializer@0, dom-serializer@~0.1.0:
domelementtype "^1.3.0"
entities "^1.1.1"
-dom-serializer@^1.0.1, dom-serializer@^1.3.2:
+dom-serializer@^1.0.1:
version "1.3.2"
resolved "https://registry.yarnpkg.com/dom-serializer/-/dom-serializer-1.3.2.tgz#6206437d32ceefaec7161803230c7a20bc1b4d91"
integrity sha512-5c54Bk5Dw4qAxNOI1pFEizPSjVsx5+bpJKmL2kPn8JhBUq2q09tTCa3mjijun2NfK78NMouDYNMBkOrPZiS+ig==
@@ -7092,7 +6996,7 @@ domhandler@^2.3.0, domhandler@^2.4.2:
dependencies:
domelementtype "1"
-domhandler@^4.0.0, domhandler@^4.2.0:
+domhandler@^4.2.0:
version "4.2.2"
resolved "https://registry.yarnpkg.com/domhandler/-/domhandler-4.2.2.tgz#e825d721d19a86b8c201a35264e226c678ee755f"
integrity sha512-PzE9aBMsdZO8TK4BnuJwH0QT41wgMbRzuZrHUcpYncEjmQazq8QEaBWgLG7ZyC/DAZKEgglpIA6j4Qn/HmxS3w==
@@ -7120,7 +7024,7 @@ domutils@^1.5.1, domutils@^1.7.0:
dom-serializer "0"
domelementtype "1"
-domutils@^2.5.2, domutils@^2.6.0, domutils@^2.7.0:
+domutils@^2.6.0:
version "2.8.0"
resolved "https://registry.yarnpkg.com/domutils/-/domutils-2.8.0.tgz#4437def5db6e2d1f5d6ee859bd95ca7d02048135"
integrity sha512-w96Cjofp72M5IIhpjgobBimYEfoPjx1Vx0BSX9P30WBdZW2WIKU0T1Bd0kz2eNZ9ikjKgHbEyKx8BB6H1L3h3A==
@@ -7195,16 +7099,6 @@ ecc-jsbn@~0.1.1:
jsbn "~0.1.0"
safer-buffer "^2.1.0"
-editorconfig@^0.15.3:
- version "0.15.3"
- resolved "https://registry.yarnpkg.com/editorconfig/-/editorconfig-0.15.3.tgz#bef84c4e75fb8dcb0ce5cee8efd51c15999befc5"
- integrity sha512-M9wIMFx96vq0R4F+gRpY3o2exzb8hEj/n9S8unZtHSvYjibBp/iMufSzvmOcV/laG0ZtuTVGtiJggPOSW2r93g==
- dependencies:
- commander "^2.19.0"
- lru-cache "^4.1.5"
- semver "^5.6.0"
- sigmund "^1.0.1"
-
ee-first@1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/ee-first/-/ee-first-1.1.1.tgz#590c61156b0ae2f4f0255732a158b266bc56b21d"
@@ -7336,79 +7230,6 @@ env-paths@^2.2.0:
resolved "https://registry.yarnpkg.com/env-paths/-/env-paths-2.2.0.tgz#cdca557dc009152917d6166e2febe1f039685e43"
integrity sha512-6u0VYSCo/OW6IoD5WCLLy9JUGARbamfSavcNXry/eu8aHVFei6CD3Sw+VGX5alea1i9pgPHW0mbu6Xj0uBh7gA==
-enzyme-adapter-react-16@1.15.6:
- version "1.15.6"
- resolved "https://registry.yarnpkg.com/enzyme-adapter-react-16/-/enzyme-adapter-react-16-1.15.6.tgz#fd677a658d62661ac5afd7f7f541f141f8085901"
- integrity sha512-yFlVJCXh8T+mcQo8M6my9sPgeGzj85HSHi6Apgf1Cvq/7EL/J9+1JoJmJsRxZgyTvPMAqOEpRSu/Ii/ZpyOk0g==
- dependencies:
- enzyme-adapter-utils "^1.14.0"
- enzyme-shallow-equal "^1.0.4"
- has "^1.0.3"
- object.assign "^4.1.2"
- object.values "^1.1.2"
- prop-types "^15.7.2"
- react-is "^16.13.1"
- react-test-renderer "^16.0.0-0"
- semver "^5.7.0"
-
-enzyme-adapter-utils@^1.14.0:
- version "1.14.0"
- resolved "https://registry.yarnpkg.com/enzyme-adapter-utils/-/enzyme-adapter-utils-1.14.0.tgz#afbb0485e8033aa50c744efb5f5711e64fbf1ad0"
- integrity sha512-F/z/7SeLt+reKFcb7597IThpDp0bmzcH1E9Oabqv+o01cID2/YInlqHbFl7HzWBl4h3OdZYedtwNDOmSKkk0bg==
- dependencies:
- airbnb-prop-types "^2.16.0"
- function.prototype.name "^1.1.3"
- has "^1.0.3"
- object.assign "^4.1.2"
- object.fromentries "^2.0.3"
- prop-types "^15.7.2"
- semver "^5.7.1"
-
-enzyme-shallow-equal@^1.0.1, enzyme-shallow-equal@^1.0.4:
- version "1.0.4"
- resolved "https://registry.yarnpkg.com/enzyme-shallow-equal/-/enzyme-shallow-equal-1.0.4.tgz#b9256cb25a5f430f9bfe073a84808c1d74fced2e"
- integrity sha512-MttIwB8kKxypwHvRynuC3ahyNc+cFbR8mjVIltnmzQ0uKGqmsfO4bfBuLxb0beLNPhjblUEYvEbsg+VSygvF1Q==
- dependencies:
- has "^1.0.3"
- object-is "^1.1.2"
-
-enzyme-to-json@3.6.2:
- version "3.6.2"
- resolved "https://registry.yarnpkg.com/enzyme-to-json/-/enzyme-to-json-3.6.2.tgz#94f85c413bcae8ab67be53b0a94b69a560e27823"
- integrity sha512-Ynm6Z6R6iwQ0g2g1YToz6DWhxVnt8Dy1ijR2zynRKxTyBGA8rCDXU3rs2Qc4OKvUvc2Qoe1bcFK6bnPs20TrTg==
- dependencies:
- "@types/cheerio" "^0.22.22"
- lodash "^4.17.21"
- react-is "^16.12.0"
-
-enzyme@3.11.0:
- version "3.11.0"
- resolved "https://registry.yarnpkg.com/enzyme/-/enzyme-3.11.0.tgz#71d680c580fe9349f6f5ac6c775bc3e6b7a79c28"
- integrity sha512-Dw8/Gs4vRjxY6/6i9wU0V+utmQO9kvh9XLnz3LIudviOnVYDEe2ec+0k+NQoMamn1VrjKgCUOWj5jG/5M5M0Qw==
- dependencies:
- array.prototype.flat "^1.2.3"
- cheerio "^1.0.0-rc.3"
- enzyme-shallow-equal "^1.0.1"
- function.prototype.name "^1.1.2"
- has "^1.0.3"
- html-element-map "^1.2.0"
- is-boolean-object "^1.0.1"
- is-callable "^1.1.5"
- is-number-object "^1.0.4"
- is-regex "^1.0.5"
- is-string "^1.0.5"
- is-subset "^0.1.1"
- lodash.escape "^4.0.1"
- lodash.isequal "^4.5.0"
- object-inspect "^1.7.0"
- object-is "^1.0.2"
- object.assign "^4.1.0"
- object.entries "^1.1.1"
- object.values "^1.1.1"
- raf "^3.4.1"
- rst-selector-parser "^2.2.3"
- string.prototype.trim "^1.2.1"
-
err-code@^2.0.2:
version "2.0.3"
resolved "https://registry.yarnpkg.com/err-code/-/err-code-2.0.3.tgz#23c2f3b756ffdfc608d30e27c9a941024807e7f9"
@@ -7428,7 +7249,7 @@ error-ex@^1.2.0, error-ex@^1.3.1:
dependencies:
is-arrayish "^0.2.1"
-es-abstract@^1.12.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.4, es-abstract@^1.17.5, es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.7.0:
+es-abstract@^1.12.0, es-abstract@^1.17.0-next.1, es-abstract@^1.17.5, es-abstract@^1.4.3, es-abstract@^1.5.1, es-abstract@^1.7.0:
version "1.17.5"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.17.5.tgz#d8c9d1d66c8981fb9200e2251d799eee92774ae9"
integrity sha512-BR9auzDbySxOcfog0tLECW8l28eRGpDpU3Dm3Hp4q/N+VtLTmyj4EUN088XZWQDW/hzj6sYRDXeOFsaAODKvpg==
@@ -7492,7 +7313,7 @@ es-abstract@^1.18.5:
string.prototype.trimstart "^1.0.4"
unbox-primitive "^1.0.1"
-es-abstract@^1.19.0, es-abstract@^1.19.1:
+es-abstract@^1.19.1:
version "1.19.1"
resolved "https://registry.yarnpkg.com/es-abstract/-/es-abstract-1.19.1.tgz#d4885796876916959de78edaa0df456627115ec3"
integrity sha512-2vJ6tjA/UfqLm2MPs7jxVybLoB8i1t1Jd9R3kISld20sIxPcTbLuggQOUxeWeAvIUkduv/CfMjuh4WmiXr2v9w==
@@ -8912,25 +8733,6 @@ function.name-polyfill@^1.0.6:
resolved "https://registry.yarnpkg.com/function.name-polyfill/-/function.name-polyfill-1.0.6.tgz#c54e37cae0a77dfcb49d47982815b0826b5c60d9"
integrity sha512-ejQivNFbBPTY5O/waFta6D5AzV8GJiM/fMDaT6LrsYax1cb4eipxuQqKNlugF2jlcXIjifsqvju3wsgV35TELg==
-function.prototype.name@^1.1.2:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.2.tgz#5cdf79d7c05db401591dfde83e3b70c5123e9a45"
- integrity sha512-C8A+LlHBJjB2AdcRPorc5JvJ5VUoWlXdEHLOJdCI7kjHEtGTpHQUiqMvCIKUwIsGwZX2jZJy761AXsn356bJQg==
- dependencies:
- define-properties "^1.1.3"
- es-abstract "^1.17.0-next.1"
- functions-have-names "^1.2.0"
-
-function.prototype.name@^1.1.3:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.4.tgz#e4ea839b9d3672ae99d0efd9f38d9191c5eaac83"
- integrity sha512-iqy1pIotY/RmhdFZygSSlW0wko2yxkSCKqsuv4pr8QESohpYyG/Z7B/XXvPRKTJS//960rgguE5mSRUsDdaJrQ==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
- es-abstract "^1.18.0-next.2"
- functions-have-names "^1.2.2"
-
function.prototype.name@^1.1.6:
version "1.1.6"
resolved "https://registry.yarnpkg.com/function.prototype.name/-/function.prototype.name-1.1.6.tgz#cdf315b7d90ee77a4c6ee216c3c3362da07533fd"
@@ -8946,16 +8748,6 @@ functional-red-black-tree@^1.0.1:
resolved "https://registry.yarnpkg.com/functional-red-black-tree/-/functional-red-black-tree-1.0.1.tgz#1b0ab3bd553b2a0d6399d29c0e3ea0b252078327"
integrity sha1-GwqzvVU7Kg1jmdKcDj6gslIHgyc=
-functions-have-names@^1.2.0:
- version "1.2.1"
- resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.1.tgz#a981ac397fa0c9964551402cdc5533d7a4d52f91"
- integrity sha512-j48B/ZI7VKs3sgeI2cZp7WXWmZXu7Iq5pl5/vptV5N2mq+DGFuS/ulaDjtaoLpYzuD6u8UgrUKHfgo7fDTSiBA==
-
-functions-have-names@^1.2.2:
- version "1.2.2"
- resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.2.tgz#98d93991c39da9361f8e50b337c4f6e41f120e21"
- integrity sha512-bLgc3asbWdwPbx2mNk2S49kmJCuQeu0nfmaOgbs8WIyzzkw3r4htszdIi9Q9EMezDPTYuJx2wvjZ/EwgAthpnA==
-
functions-have-names@^1.2.3:
version "1.2.3"
resolved "https://registry.yarnpkg.com/functions-have-names/-/functions-have-names-1.2.3.tgz#0404fe4ee2ba2f607f0e0ec3c80bae994133b834"
@@ -9779,14 +9571,6 @@ html-comment-regex@^1.1.0:
resolved "https://registry.yarnpkg.com/html-comment-regex/-/html-comment-regex-1.1.2.tgz#97d4688aeb5c81886a364faa0cad1dda14d433a7"
integrity sha512-P+M65QY2JQ5Y0G9KKdlDpo0zK+/OHptU5AaBwUfAIDJZk1MYf32Frm84EcOytfJE0t5JvkAnKlmjsXDnWzCJmQ==
-html-element-map@^1.2.0:
- version "1.3.1"
- resolved "https://registry.yarnpkg.com/html-element-map/-/html-element-map-1.3.1.tgz#44b2cbcfa7be7aa4ff59779e47e51012e1c73c08"
- integrity sha512-6XMlxrAFX4UEEGxctfFnmrFaaZFNf9i5fNuV5wZ3WWQ4FVaNP1aX1LkX9j2mfEx1NpjeE/rL3nmgEn23GdFmrg==
- dependencies:
- array.prototype.filter "^1.0.0"
- call-bind "^1.0.2"
-
html-encoding-sniffer@^2.0.1:
version "2.0.1"
resolved "https://registry.yarnpkg.com/html-encoding-sniffer/-/html-encoding-sniffer-2.0.1.tgz#42a6dc4fd33f00281176e8b23759ca4e4fa185f3"
@@ -9853,16 +9637,6 @@ htmlparser2@^3.10.0, htmlparser2@^3.3.0, htmlparser2@^3.8.3, htmlparser2@^3.9.1:
inherits "^2.0.1"
readable-stream "^3.1.1"
-htmlparser2@^6.1.0:
- version "6.1.0"
- resolved "https://registry.yarnpkg.com/htmlparser2/-/htmlparser2-6.1.0.tgz#c4d762b6c3371a05dbe65e94ae43a9f845fb8fb7"
- integrity sha512-gyyPk6rgonLFEDGoeRgQNaEUvdJ4ktTmmUh/h2t7s+M8oPpIPxgNACWa+6ESR57kXstwqPiCut0V8NRpcwgU7A==
- dependencies:
- domelementtype "^2.0.1"
- domhandler "^4.0.0"
- domutils "^2.5.2"
- entities "^2.0.0"
-
http-cache-semantics@^4.1.0:
version "4.1.0"
resolved "https://registry.yarnpkg.com/http-cache-semantics/-/http-cache-semantics-4.1.0.tgz#49e91c5cbf36c9b94bcfcd71c23d5249ec74e390"
@@ -10442,14 +10216,6 @@ is-binary-path@~2.1.0:
dependencies:
binary-extensions "^2.0.0"
-is-boolean-object@^1.0.1:
- version "1.1.2"
- resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.2.tgz#5c6dc200246dd9321ae4b885a114bb1f75f63719"
- integrity sha512-gDYaKHJmnj4aWxyj6YHyXVpdQawtVLHU5cb+eztPGczf6cjuTdwve5ZIEfgXqH4e57An1D1AKf8CZ3kYrQRqYA==
- dependencies:
- call-bind "^1.0.2"
- has-tostringtag "^1.0.0"
-
is-boolean-object@^1.1.0:
version "1.1.1"
resolved "https://registry.yarnpkg.com/is-boolean-object/-/is-boolean-object-1.1.1.tgz#3c0878f035cb821228d350d2e1e36719716a3de8"
@@ -10886,7 +10652,7 @@ is-regex@^1.0.5:
dependencies:
has "^1.0.3"
-is-regex@^1.1.0, is-regex@^1.1.3:
+is-regex@^1.1.3:
version "1.1.3"
resolved "https://registry.yarnpkg.com/is-regex/-/is-regex-1.1.3.tgz#d029f9aff6448b93ebbe3f33dac71511fdcbef9f"
integrity sha512-qSVXFz28HM7y+IWX6vLCsexdlvzT1PJNFSBuaQLQ5o0IEw8UDYW6/2+eCMVyIsbM8CNLX2a/QWmSpyxYEHY7CQ==
@@ -11035,11 +10801,6 @@ is-whitespace-character@^1.0.0:
resolved "https://registry.yarnpkg.com/is-whitespace-character/-/is-whitespace-character-1.0.2.tgz#ede53b4c6f6fb3874533751ec9280d01928d03ed"
integrity sha512-SzM+T5GKUCtLhlHFKt2SDAX2RFzfS6joT91F2/WSi9LxgFdsnhfPK/UIA+JhRR2xuyLdrCys2PiFDrtn1fU5hQ==
-is-whitespace@^0.3.0:
- version "0.3.0"
- resolved "https://registry.yarnpkg.com/is-whitespace/-/is-whitespace-0.3.0.tgz#1639ecb1be036aec69a54cbb401cfbed7114ab7f"
- integrity sha1-Fjnssb4DauxppUy7QBz77XEUq38=
-
is-windows@^1.0.2:
version "1.0.2"
resolved "https://registry.yarnpkg.com/is-windows/-/is-windows-1.0.2.tgz#d1850eb9791ecd18e6182ce12a30f396634bb19d"
@@ -11593,17 +11354,6 @@ js-base64@^2.1.9:
resolved "https://registry.yarnpkg.com/js-base64/-/js-base64-2.5.1.tgz#1efa39ef2c5f7980bb1784ade4a8af2de3291121"
integrity sha512-M7kLczedRMYX4L8Mdh4MzyAMM9O5osx+4FcOQuTvr3A9F2D9S5JXheN0ewNbrvK2UatkTRhL5ejGmGSjNMiZuw==
-js-beautify@^1.6.12:
- version "1.10.0"
- resolved "https://registry.yarnpkg.com/js-beautify/-/js-beautify-1.10.0.tgz#9753a13c858d96828658cd18ae3ca0e5783ea672"
- integrity sha512-OMwf/tPDpE/BLlYKqZOhqWsd3/z2N3KOlyn1wsCRGFwViE8LOQTcDtathQvHvZc+q+zWmcNAbwKSC+iJoMaH2Q==
- dependencies:
- config-chain "^1.1.12"
- editorconfig "^0.15.3"
- glob "^7.1.3"
- mkdirp "~0.5.1"
- nopt "~4.0.1"
-
"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"
@@ -12479,11 +12229,6 @@ lodash.defaults@4.0.1, lodash.defaults@^4.0.1:
lodash.assigninwith "^4.0.0"
lodash.rest "^4.0.0"
-lodash.escape@^4.0.1:
- version "4.0.1"
- resolved "https://registry.yarnpkg.com/lodash.escape/-/lodash.escape-4.0.1.tgz#c9044690c21e04294beaa517712fded1fa88de98"
- integrity sha1-yQRGkMIeBClL6qUXcS/e0fqI3pg=
-
lodash.escaperegexp@^4.1.2:
version "4.1.2"
resolved "https://registry.yarnpkg.com/lodash.escaperegexp/-/lodash.escaperegexp-4.1.2.tgz#64762c48618082518ac3df4ccf5d5886dae20347"
@@ -12499,21 +12244,11 @@ lodash.flatten@^4.2.0:
resolved "https://registry.yarnpkg.com/lodash.flatten/-/lodash.flatten-4.4.0.tgz#f31c22225a9632d2bbf8e4addbef240aa765a61f"
integrity sha1-8xwiIlqWMtK7+OSt2+8kCqdlph8=
-lodash.flattendeep@^4.4.0:
- version "4.4.0"
- resolved "https://registry.yarnpkg.com/lodash.flattendeep/-/lodash.flattendeep-4.4.0.tgz#fb030917f86a3134e5bc9bec0d69e0013ddfedb2"
- integrity sha1-+wMJF/hqMTTlvJvsDWngAT3f7bI=
-
lodash.foreach@^4.3.0:
version "4.5.0"
resolved "https://registry.yarnpkg.com/lodash.foreach/-/lodash.foreach-4.5.0.tgz#1a6a35eace401280c7f06dddec35165ab27e3e53"
integrity sha1-Gmo16s5AEoDH8G3d7DUWWrJ+PlM=
-lodash.isequal@^4.5.0:
- version "4.5.0"
- resolved "https://registry.yarnpkg.com/lodash.isequal/-/lodash.isequal-4.5.0.tgz#415c4478f2bcc30120c22ce10ed3226f7d3e18e0"
- integrity sha1-QVxEePK8wwEgwizhDtMib30+GOA=
-
lodash.ismatch@^4.4.0:
version "4.4.0"
resolved "https://registry.yarnpkg.com/lodash.ismatch/-/lodash.ismatch-4.4.0.tgz#756cb5150ca3ba6f11085a78849645f188f85f37"
@@ -12655,7 +12390,7 @@ lowercase-keys@^3.0.0:
resolved "https://registry.yarnpkg.com/lowercase-keys/-/lowercase-keys-3.0.0.tgz#c5e7d442e37ead247ae9db117a9d0a467c89d4f2"
integrity sha512-ozCC6gdQ+glXOQsveKD0YsDy8DSQFjDTz4zyzEHNV5+JP5D62LmfDZ6o1cycFx9ouG940M5dE8C8CTewdj2YWQ==
-lru-cache@^4.0.1, lru-cache@^4.1.5:
+lru-cache@^4.0.1:
version "4.1.5"
resolved "https://registry.yarnpkg.com/lru-cache/-/lru-cache-4.1.5.tgz#8bbe50ea85bed59bc9e33dcab8235ee9bcf443cd"
integrity sha512-sWZlbEP2OsHNkXrMl5GYk/jKk70MBng6UU4YI/qGDYbgf6YbP4EvmqISbXCoJiRKs+1bSpFHVgQxvJ17F2li5g==
@@ -13405,11 +13140,6 @@ moo-color@^1.0.2:
dependencies:
color-name "^1.1.4"
-moo@^0.4.3:
- version "0.4.3"
- resolved "https://registry.yarnpkg.com/moo/-/moo-0.4.3.tgz#3f847a26f31cf625a956a87f2b10fbc013bfd10e"
- integrity sha512-gFD2xGCl8YFgGHsqJ9NKRVdwlioeW3mI1iqfLNYQOv0+6JRwG58Zk9DIGQgyIaffSYaO1xsKnMaYzzNr1KyIAw==
-
mout@~0.5.0:
version "0.5.0"
resolved "https://registry.yarnpkg.com/mout/-/mout-0.5.0.tgz#ff967566a90f29595e9cb8b6e7800a5b56635583"
@@ -13534,17 +13264,6 @@ natural-compare@^1.4.0:
resolved "https://registry.yarnpkg.com/natural-compare/-/natural-compare-1.4.0.tgz#4abebfeed7541f2c27acfb29bdbbd15c8d5ba4f7"
integrity sha1-Sr6/7tdUHywnrPspvbvRXI1bpPc=
-nearley@^2.7.10:
- version "2.16.0"
- resolved "https://registry.yarnpkg.com/nearley/-/nearley-2.16.0.tgz#77c297d041941d268290ec84b739d0ee297e83a7"
- integrity sha512-Tr9XD3Vt/EujXbZBv6UAHYoLUSMQAxSsTnm9K3koXzjzNWY195NqALeyrzLZBKzAkL3gl92BcSogqrHjD8QuUg==
- dependencies:
- commander "^2.19.0"
- moo "^0.4.3"
- railroad-diagrams "^1.0.0"
- randexp "0.4.6"
- semver "^5.4.1"
-
needle@^2.2.1:
version "2.3.1"
resolved "https://registry.yarnpkg.com/needle/-/needle-2.3.1.tgz#d272f2f4034afb9c4c9ab1379aabc17fc85c9388"
@@ -13775,7 +13494,7 @@ noms@0.0.0:
inherits "^2.0.1"
readable-stream "~1.0.31"
-nopt@^4.0.1, nopt@~4.0.1:
+nopt@^4.0.1:
version "4.0.3"
resolved "https://registry.yarnpkg.com/nopt/-/nopt-4.0.3.tgz#a375cad9d02fd921278d954c2254d5aa57e15e48"
integrity sha512-CvaGwVMztSMJLOeXPrez7fyfObdZqNUK1cPAEzLHrTybIua9pMdmmPR5YwtfNftIOMv3DPUhFaxsZMNTQO20Kg==
@@ -14187,14 +13906,6 @@ object-inspect@^1.7.0:
resolved "https://registry.yarnpkg.com/object-inspect/-/object-inspect-1.7.0.tgz#f4f6bd181ad77f006b5ece60bd0b6f398ff74a67"
integrity sha512-a7pEHdh1xKIAgTySUGgLMx/xwDZskN1Ud6egYYN3EdRW4ZMPNEDUTF+hwy2LUC+Bl+SyLXANnwz/jyh/qutKUw==
-object-is@^1.0.2, object-is@^1.1.2:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/object-is/-/object-is-1.1.5.tgz#b9deeaa5fc7f1846a0faecdceec138e5778f53ac"
- integrity sha512-3cyDsyHgtmi7I7DfSSI2LDp6SK2lwvtbg0p0R1e0RvTqF5ceGx+K2dfSjm1bKDMVCFEDAQvy+o8c6a7VujOddw==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
-
object-keys@^1.0.11, object-keys@^1.0.12, object-keys@^1.1.1:
version "1.1.1"
resolved "https://registry.yarnpkg.com/object-keys/-/object-keys-1.1.1.tgz#1c47f272df277f3b1daf061677d9c82e2322c60e"
@@ -14247,16 +13958,7 @@ object.entries@^1.1.0:
function-bind "^1.1.1"
has "^1.0.3"
-object.entries@^1.1.1, object.entries@^1.1.5:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861"
- integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
- es-abstract "^1.19.1"
-
-object.entries@^1.1.2, object.entries@^1.1.4:
+object.entries@^1.1.4:
version "1.1.4"
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.4.tgz#43ccf9a50bc5fd5b649d45ab1a579f24e088cafd"
integrity sha512-h4LWKWE+wKQGhtMjZEBud7uLGhqyLwj8fpHOarZhD2uY3C9cRtk57VQ89ke3moByLXMedqs3XCHzyb4AmA2DjA==
@@ -14265,6 +13967,15 @@ object.entries@^1.1.2, object.entries@^1.1.4:
define-properties "^1.1.3"
es-abstract "^1.18.2"
+object.entries@^1.1.5:
+ version "1.1.5"
+ resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.5.tgz#e1acdd17c4de2cd96d5a08487cfb9db84d881861"
+ integrity sha512-TyxmjUoZggd4OrrU1W66FMDG6CuqJxsFvymeyXI51+vQLN67zYfZseptRge703kKQdo4uccgAKebXFcRCzk4+g==
+ dependencies:
+ call-bind "^1.0.2"
+ define-properties "^1.1.3"
+ es-abstract "^1.19.1"
+
object.entries@^1.1.6:
version "1.1.8"
resolved "https://registry.yarnpkg.com/object.entries/-/object.entries-1.1.8.tgz#bffe6f282e01f4d17807204a24f8edd823599c41"
@@ -14284,16 +13995,6 @@ object.fromentries@^2.0.0:
function-bind "^1.1.1"
has "^1.0.3"
-object.fromentries@^2.0.3:
- version "2.0.4"
- resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.4.tgz#26e1ba5c4571c5c6f0890cef4473066456a120b8"
- integrity sha512-EsFBshs5RUUpQEY1D4q/m59kMfz4YJvxuNCJcv/jWwOJr34EaVnG11ZrZa0UHB3wnzV1wx8m58T4hQL8IuNXlQ==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
- es-abstract "^1.18.0-next.2"
- has "^1.0.3"
-
object.fromentries@^2.0.6:
version "2.0.8"
resolved "https://registry.yarnpkg.com/object.fromentries/-/object.fromentries-2.0.8.tgz#f7195d8a9b97bd95cbc1999ea939ecd1a2b00c65"
@@ -14346,24 +14047,6 @@ object.values@^1.1.0:
function-bind "^1.1.1"
has "^1.0.3"
-object.values@^1.1.1:
- version "1.1.5"
- resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.5.tgz#959f63e3ce9ef108720333082131e4a459b716ac"
- integrity sha512-QUZRW0ilQ3PnPpbNtgdNV1PDbEqLIiSFB3l+EnGtBQ/8SUTLj1PZwtQHABZtLgwpJZTSZhuGLOGk57Drx2IvYg==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
- es-abstract "^1.19.1"
-
-object.values@^1.1.2:
- version "1.1.4"
- resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.1.4.tgz#0d273762833e816b693a637d30073e7051535b30"
- integrity sha512-TnGo7j4XSnKQoK3MfvkzqKCi0nVe/D9I9IjwTNYdb/fxYHpjrluHVOgw0AF6jrRFGMPHdfuidR09tIDiIvnaSg==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
- es-abstract "^1.18.2"
-
object.values@^1.1.6:
version "1.2.0"
resolved "https://registry.yarnpkg.com/object.values/-/object.values-1.2.0.tgz#65405a9d92cee68ac2d303002e0b8470a4d9ab1b"
@@ -14864,14 +14547,7 @@ parse-json@^5.2.0:
json-parse-even-better-errors "^2.3.0"
lines-and-columns "^1.1.6"
-parse5-htmlparser2-tree-adapter@^6.0.1:
- version "6.0.1"
- resolved "https://registry.yarnpkg.com/parse5-htmlparser2-tree-adapter/-/parse5-htmlparser2-tree-adapter-6.0.1.tgz#2cdf9ad823321140370d4dbf5d3e92c7c8ddc6e6"
- integrity sha512-qPuWvbLgvDGilKc5BoicRovlT4MtYT6JfJyBOMDsKoiT+GiuP5qyrPCnR9HcPECIJJmZh5jRndyNThnhhb/vlA==
- dependencies:
- parse5 "^6.0.1"
-
-parse5@6.0.1, parse5@^6.0.1:
+parse5@6.0.1:
version "6.0.1"
resolved "https://registry.yarnpkg.com/parse5/-/parse5-6.0.1.tgz#e1a1c085c569b3dc08321184f19a39cc27f7c30b"
integrity sha512-Ofn/CTFzRGTTxwpNEs9PP93gXShHcTq255nzRYSKe8AkVpZY7e1fpmTfOyoIvjP5HG7Z2ZM7VS9PPhQGW2pOpw==
@@ -15921,15 +15597,6 @@ pretty-hrtime@^1.0.3:
resolved "https://registry.yarnpkg.com/pretty-hrtime/-/pretty-hrtime-1.0.3.tgz#b7e3ea42435a4c9b2759d99e0f201eb195802ee1"
integrity sha1-t+PqQkNaTJsnWdmeDyAesZWALuE=
-pretty@2.0.0:
- version "2.0.0"
- resolved "https://registry.yarnpkg.com/pretty/-/pretty-2.0.0.tgz#adbc7960b7bbfe289a557dc5f737619a220d06a5"
- integrity sha1-rbx5YLe7/iiaVX3F9zdhmiINBqU=
- dependencies:
- condense-newlines "^0.2.1"
- extend-shallow "^2.0.1"
- js-beautify "^1.6.12"
-
prismjs@^1.17.1:
version "1.29.0"
resolved "https://registry.yarnpkg.com/prismjs/-/prismjs-1.29.0.tgz#f113555a8fa9b57c35e637bba27509dcf802dd12"
@@ -16003,15 +15670,6 @@ promzard@^0.3.0:
dependencies:
read "1"
-prop-types-exact@^1.2.0:
- version "1.2.0"
- resolved "https://registry.yarnpkg.com/prop-types-exact/-/prop-types-exact-1.2.0.tgz#825d6be46094663848237e3925a98c6e944e9869"
- integrity sha512-K+Tk3Kd9V0odiXFP9fwDHUYRyvK3Nun3GVyPapSIs5OBkITAm15W0CPFD/YKTkMUAbc0b9CUwRQp2ybiBIq+eA==
- dependencies:
- has "^1.0.3"
- object.assign "^4.1.0"
- reflect.ownkeys "^0.2.0"
-
prop-types@15.7.2, prop-types@^15.5.4, prop-types@^15.5.8, prop-types@^15.6.0, prop-types@^15.6.1, prop-types@^15.6.2, prop-types@^15.7.2:
version "15.7.2"
resolved "https://registry.yarnpkg.com/prop-types/-/prop-types-15.7.2.tgz#52c41e75b8c87e72b9d9360e0206b99dcbffa6c5"
@@ -16232,24 +15890,11 @@ raf@^3.4.1:
dependencies:
performance-now "^2.1.0"
-railroad-diagrams@^1.0.0:
- version "1.0.0"
- resolved "https://registry.yarnpkg.com/railroad-diagrams/-/railroad-diagrams-1.0.0.tgz#eb7e6267548ddedfb899c1b90e57374559cddb7e"
- integrity sha1-635iZ1SN3t+4mcG5Dlc3RVnN234=
-
ramda@^0.26:
version "0.26.1"
resolved "https://registry.yarnpkg.com/ramda/-/ramda-0.26.1.tgz#8d41351eb8111c55353617fc3bbffad8e4d35d06"
integrity sha512-hLWjpy7EnsDBb0p+Z3B7rPi3GDeRG5ZtiI33kJhTt+ORCd38AbAIjB/9zRIUoeTbE/AVX5ZkU7m6bznsvrf8eQ==
-randexp@0.4.6:
- version "0.4.6"
- resolved "https://registry.yarnpkg.com/randexp/-/randexp-0.4.6.tgz#e986ad5e5e31dae13ddd6f7b3019aa7c87f60ca3"
- integrity sha512-80WNmd9DA0tmZrw9qQa62GPPWfuXJknrmVmLcxvq4uZBdYqb1wYoKTmnlGUchvVWe0XiLupYkBoXVOxz3C8DYQ==
- dependencies:
- discontinuous-range "1.0.0"
- ret "~0.1.10"
-
randomatic@^3.0.0:
version "3.1.1"
resolved "https://registry.yarnpkg.com/randomatic/-/randomatic-3.1.1.tgz#b776efc59375984e36c537b2f51a1f0aff0da1ed"
@@ -16425,7 +16070,7 @@ react-input-autosize@^3.0.0:
dependencies:
prop-types "^15.5.8"
-react-is@^16.12.0, react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6:
+react-is@^16.13.1, react-is@^16.7.0, react-is@^16.8.1, react-is@^16.8.6:
version "16.13.1"
resolved "https://registry.yarnpkg.com/react-is/-/react-is-16.13.1.tgz#789729a4dc36de2999dc156dd6c1d9c18cea56a4"
integrity sha512-24e6ynE2H+OKt4kqsOvNd8kBpV65zoxbA4BVsEOB3ARVWQki/DHzaUoC5KuON/BiccDaCCTZBuOcfZs70kR8bQ==
@@ -16652,7 +16297,7 @@ react-swipeable-views@^0.13.3:
react-swipeable-views-utils "^0.13.9"
warning "^4.0.1"
-react-test-renderer@16.12.0, react-test-renderer@^16.0.0-0:
+react-test-renderer@16.12.0:
version "16.12.0"
resolved "https://registry.yarnpkg.com/react-test-renderer/-/react-test-renderer-16.12.0.tgz#11417ffda579306d4e841a794d32140f3da1b43f"
integrity sha512-Vj/teSqt2oayaWxkbhQ6gKis+t5JrknXfPVo+aIJ8QwYAqMPH77uptOdrlphyxl8eQI/rtkOYg86i/UWkpFu0w==
@@ -16945,11 +16590,6 @@ redux@^4.0.0:
dependencies:
"@babel/runtime" "^7.9.2"
-reflect.ownkeys@^0.2.0:
- version "0.2.0"
- resolved "https://registry.yarnpkg.com/reflect.ownkeys/-/reflect.ownkeys-0.2.0.tgz#749aceec7f3fdf8b63f927a04809e90c5c0b3460"
- integrity sha1-dJrO7H8/34tj+SegSAnpDFwLNGA=
-
regenerate-unicode-properties@^10.0.1:
version "10.0.1"
resolved "https://registry.yarnpkg.com/regenerate-unicode-properties/-/regenerate-unicode-properties-10.0.1.tgz#7f442732aa7934a3740c779bb9b3340dccc1fb56"
@@ -17739,14 +17379,6 @@ rooks@^5.11.2:
lodash.debounce "^4.0.8"
raf "^3.4.1"
-rst-selector-parser@^2.2.3:
- version "2.2.3"
- resolved "https://registry.yarnpkg.com/rst-selector-parser/-/rst-selector-parser-2.2.3.tgz#81b230ea2fcc6066c89e3472de794285d9b03d91"
- integrity sha1-gbIw6i/MYGbInjRy3nlChdmwPZE=
- dependencies:
- lodash.flattendeep "^4.4.0"
- nearley "^2.7.10"
-
rsvp@^4.8.4:
version "4.8.4"
resolved "https://registry.yarnpkg.com/rsvp/-/rsvp-4.8.4.tgz#b50e6b34583f3dd89329a2f23a8a2be072845911"
@@ -17971,7 +17603,7 @@ semver-regex@^3.1.2:
resolved "https://registry.yarnpkg.com/semver-regex/-/semver-regex-3.1.3.tgz#b2bcc6f97f63269f286994e297e229b6245d0dc3"
integrity sha512-Aqi54Mk9uYTjVexLnR67rTyBusmwd04cLkHy9hNvk3+G3nT2Oyg7E0l4XVbOaNwIvQ3hHeYxGcyEy+mKreyBFQ==
-"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.0, semver@^5.7.1:
+"semver@2 || 3 || 4 || 5", semver@^5.0.3, semver@^5.1.0, semver@^5.3.0, semver@^5.4.1, semver@^5.5.0, semver@^5.5.1, semver@^5.6.0, semver@^5.7.1:
version "5.7.1"
resolved "https://registry.yarnpkg.com/semver/-/semver-5.7.1.tgz#a954f931aeba508d307bbf069eff0c01c96116f7"
integrity sha512-sauaDf/PZdVgrLTNYHRtpXa1iRiKcaebiKQ1BJdpQlWH2lCvexQdX55snPFyK7QzpudqbCI0qXFfOasHdyNDGQ==
@@ -18233,11 +17865,6 @@ sift@^6.0.0:
resolved "https://registry.yarnpkg.com/sift/-/sift-6.0.0.tgz#f93a778e5cbf05a5024ebc391e6b32511a6d1f82"
integrity sha1-+Tp3jly/BaUCTrw5HmsyURptH4I=
-sigmund@^1.0.1:
- version "1.0.1"
- resolved "https://registry.yarnpkg.com/sigmund/-/sigmund-1.0.1.tgz#3ff21f198cad2175f9f3b781853fd94d0d19b590"
- integrity sha1-P/IfGYytIXX587eBhT/ZTQ0ZtZA=
-
signal-exit@^3.0.0, signal-exit@^3.0.2, signal-exit@^3.0.3:
version "3.0.3"
resolved "https://registry.yarnpkg.com/signal-exit/-/signal-exit-3.0.3.tgz#a1410c2edd8f077b08b4e253c8eacfcaf057461c"
@@ -18814,15 +18441,6 @@ string.prototype.padend@^3.0.0:
es-abstract "^1.4.3"
function-bind "^1.0.2"
-string.prototype.trim@^1.2.1:
- version "1.2.5"
- resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.5.tgz#a587bcc8bfad8cb9829a577f5de30dd170c1682c"
- integrity sha512-Lnh17webJVsD6ECeovpVN17RlAKjmz4rF9S+8Y45CkMc/ufVpTkU3vZIyIC7sllQ1FCvObZnnCdNs/HXTUOTlg==
- dependencies:
- call-bind "^1.0.2"
- define-properties "^1.1.3"
- es-abstract "^1.19.1"
-
string.prototype.trim@^1.2.4:
version "1.2.4"
resolved "https://registry.yarnpkg.com/string.prototype.trim/-/string.prototype.trim-1.2.4.tgz#6014689baf5efaf106ad031a5fa45157666ed1bd"
@@ -19744,11 +19362,6 @@ tslib@^2.0.1:
resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.0.1.tgz#410eb0d113e5b6356490eec749603725b021b43e"
integrity sha512-SgIkNheinmEBgx1IUNirK0TUD4X9yjjBRTqqjggWCU3pUEqIk3/Uwl3yRixYKT6WjQuGiwDv4NomL3wqRCj+CQ==
-tslib@^2.2.0:
- version "2.3.1"
- resolved "https://registry.yarnpkg.com/tslib/-/tslib-2.3.1.tgz#e8a335add5ceae51aa261d32a490158ef042ef01"
- integrity sha512-77EbyPPpMz+FRFRuAFlWMtmgUWGe9UOG2Z25NqCwiIjRhOf5iKGuzSe5P2w1laq+FkRy4p+PCuVkJSGkzTEKVw==
-
tsutils@^3.21.0:
version "3.21.0"
resolved "https://registry.yarnpkg.com/tsutils/-/tsutils-3.21.0.tgz#b48717d394cea6c1e096983eed58e9d61715b623"