diff --git a/package-lock.json b/package-lock.json index 1a08aee..8071501 100644 --- a/package-lock.json +++ b/package-lock.json @@ -52,7 +52,6 @@ "@testing-library/jest-dom": "5.17.0", "@testing-library/react": "12.1.5", "glob": "10.3.10", - "react-test-renderer": "17.0.2", "reactifex": "1.1.1", "redux-mock-store": "1.5.4" } @@ -18293,19 +18292,6 @@ "react-dom": ">=16.8" } }, - "node_modules/react-shallow-renderer": { - "version": "16.15.0", - "resolved": "https://registry.npmjs.org/react-shallow-renderer/-/react-shallow-renderer-16.15.0.tgz", - "integrity": "sha512-oScf2FqQ9LFVQgA73vr86xl2NaOIX73rh+YFqcOp68CWj56tSfgtGKrEbyhCj0rSijyG9M1CYprTh39fBi5hzA==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "react-is": "^16.12.0 || ^17.0.0 || ^18.0.0" - }, - "peerDependencies": { - "react": "^16.0.0 || ^17.0.0 || ^18.0.0" - } - }, "node_modules/react-side-effect": { "version": "2.1.2", "resolved": "https://registry.npmjs.org/react-side-effect/-/react-side-effect-2.1.2.tgz", @@ -18348,21 +18334,6 @@ "react": "^16.8.3 || ^17.0.0-0 || ^18.0.0" } }, - "node_modules/react-test-renderer": { - "version": "17.0.2", - "resolved": "https://registry.npmjs.org/react-test-renderer/-/react-test-renderer-17.0.2.tgz", - "integrity": "sha512-yaQ9cB89c17PUb0x6UfWRs7kQCorVdHlutU1boVPEsB8IDZH6n9tHxMacc3y0JoXOJUsZb/t/Mb8FUWMKaM7iQ==", - "dev": true, - "dependencies": { - "object-assign": "^4.1.1", - "react-is": "^17.0.2", - "react-shallow-renderer": "^16.13.1", - "scheduler": "^0.20.2" - }, - "peerDependencies": { - "react": "17.0.2" - } - }, "node_modules/react-transition-group": { "version": "4.4.5", "resolved": "https://registry.npmjs.org/react-transition-group/-/react-transition-group-4.4.5.tgz", diff --git a/package.json b/package.json index 11b14ba..7a2401b 100644 --- a/package.json +++ b/package.json @@ -71,7 +71,6 @@ "@testing-library/jest-dom": "5.17.0", "@testing-library/react": "12.1.5", "glob": "10.3.10", - "react-test-renderer": "17.0.2", "reactifex": "1.1.1", "redux-mock-store": "1.5.4" } diff --git a/src/profile/ProfilePage.test.jsx b/src/profile/ProfilePage.test.jsx index b86151e..997a92e 100644 --- a/src/profile/ProfilePage.test.jsx +++ b/src/profile/ProfilePage.test.jsx @@ -7,7 +7,6 @@ import { render } from '@testing-library/react'; import React from 'react'; import PropTypes from 'prop-types'; import { Provider } from 'react-redux'; -import renderer from 'react-test-renderer'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; @@ -100,7 +99,7 @@ describe('', () => { config: getConfig(), }; const component = ; - const tree = renderer.create(component).toJSON(); + const { container: tree } = render(component); expect(tree).toMatchSnapshot(); }); @@ -110,7 +109,7 @@ describe('', () => { config: getConfig(), }; const component = ; - const tree = renderer.create(component).toJSON(); + const { container: tree } = render(component); expect(tree).toMatchSnapshot(); }); @@ -144,7 +143,7 @@ describe('', () => { match={{ params: { username: 'verified' } }} // Override default match /> ); - const tree = renderer.create(component).toJSON(); + const { container: tree } = render(component); expect(tree).toMatchSnapshot(); }); @@ -159,7 +158,7 @@ describe('', () => { store={mockStore(storeMocks.savingEditedBio)} /> ); - const tree = renderer.create(component).toJSON(); + const { container: tree } = render(component); expect(tree).toMatchSnapshot(); }); @@ -176,7 +175,7 @@ describe('', () => { store={mockStore(storeData)} /> ); - const tree = renderer.create(component).toJSON(); + const { container: tree } = render(component); expect(tree).toMatchSnapshot(); }); @@ -194,7 +193,7 @@ describe('', () => { store={mockStore(storeData)} /> ); - const tree = renderer.create(component).toJSON(); + const { container: tree } = render(component); expect(tree).toMatchSnapshot(); }); @@ -212,7 +211,7 @@ describe('', () => { store={mockStore(storeData)} /> ); - const tree = renderer.create(component).toJSON(); + const { container: tree } = render(component); expect(tree).toMatchSnapshot(); }); @@ -230,7 +229,7 @@ describe('', () => { store={mockStore(storeData)} /> ); - const tree = renderer.create(component).toJSON(); + const { container: tree } = render(component); expect(tree).toMatchSnapshot(); }); @@ -248,7 +247,7 @@ describe('', () => { store={mockStore(storeMocks.viewOwnProfile)} /> ); - const tree = renderer.create(component).toJSON(); + const { container: tree } = render(component); expect(tree).toMatchSnapshot(); }); it('test age message alert', () => { diff --git a/src/profile/__snapshots__/ProfilePage.test.jsx.snap b/src/profile/__snapshots__/ProfilePage.test.jsx.snap index 746bd2b..137873f 100644 --- a/src/profile/__snapshots__/ProfilePage.test.jsx.snap +++ b/src/profile/__snapshots__/ProfilePage.test.jsx.snap @@ -1,30 +1,28 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[` Renders correctly in various states app loading 1`] = ` -
+
-
+ class="profile-page" + >
+ class="profile-page-bg-banner bg-primary d-none d-md-block p-relative" + /> +
- - Profile loading... - + + Profile loading... + +
@@ -32,2375 +30,2194 @@ exports[` Renders correctly in various states app loading 1`] = ` `; exports[` Renders correctly in various states test country edit with error 1`] = ` -
+
-
+
- -
-
- profile avatar -
-
- -
-
-
-
-
-
- -

- staff -

-

- Member since - 2017 -

-
-
-
- -
-
-
-
-
- -

- staff -

-

- Member since - 2017 -

-
-
-
- -
-
-
-

- Full Name - -

-

- - - - Just me - -

-
-

- Lemon Seltzer -

- - This is the name that appears in your account and on your certificates. - -
-
-
-
-
-
-
- - -
-
- country error -
-
-
-
- - - - - - - -
-
+ profile avatar +
+ +
-
-

- Primary Language Spoken - -

+ staff +

- - - - Everyone on localhost - + Member since + 2017

-
-

- Yoruba -

+
+
-
-
- -

- Elementary/primary school -

-
-
-
-
-
-

- Social Links - -

-

- - - - Everyone on localhost - -

-
- + +
-
-

- About Me - -

+ staff +

+ Member since + 2017 +

+
+ +
+ +
+
+
+

+ Full Name + +

+

+ + + + Just me + +

+
+

+ Lemon Seltzer +

+ + This is the name that appears in your account and on your certificates. + +
+
+
+
+
+
+
+ + +
+
+ country error +
+
+
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
+
+
+
+

+ Primary Language Spoken + +

+

+ + + + Everyone on localhost + +

+
+

+ Yoruba

-

+

+
- This is my bio -

+
+

+ Education + +

+

+ + + + Just me + +

+
+

+ Elementary/primary school +

+
+
+
+
+
+

+ Social Links + +

+

+ + + + Everyone on localhost + +

+
+ +
-

- My Certificates - -

-

- - - - Everyone on localhost - -

-
-
+

+ About Me + +

+

+ + + + Everyone on localhost + +

+
+

+ This is my bio +

+
+
+
+
+
+

+ My Certificates + +

+

+ + + + Everyone on localhost + +

+
+
- @@ -2415,1169 +2232,988 @@ exports[` Renders correctly in various states test country edit w `; exports[` Renders correctly in various states test education edit with error 1`] = ` -
+
-
+
- -
-
- profile avatar -
-
- -
-
-
-
-
-
- -

- staff -

-

- Member since - 2017 -

-
-
-
- -
-
-
-
-
- -

- staff -

-

- Member since - 2017 -

-
-
-
- -
-
-
-

- Full Name - -

-

- - - - Just me - -

-
-

- Lemon Seltzer -

- - This is the name that appears in your account and on your certificates. - -
-
-
-
-
-

- Location - -

-

- - - - Everyone on localhost - -

-
-

- Montenegro -

-
-
-
-
-
-

- Primary Language Spoken - -

-

- - - - Everyone on localhost - -

-
-

- Yoruba -

-
-
-
-
-
-
-
- - -
-
- education error -
-
-
-
- - - - - - - -
-
+ profile avatar +
+ +
-
-

- Social Links - -

+ staff +

+ Member since + 2017 +

+
+ +
+ - + +
-
-

- About Me - -

+ staff +

+ Member since + 2017 +

+
+ +
+ +
+
+
+

+ Full Name + +

+

+ + + + Just me + +

+
+

+ Lemon Seltzer +

+ + This is the name that appears in your account and on your certificates. + +
+
+
+
+
+

+ Location + +

+

+ + + + Everyone on localhost + +

+
+

+ Montenegro

-

+

+
- This is my bio -

+
+

+ Primary Language Spoken + +

+

+ + + + Everyone on localhost + +

+
+

+ Yoruba +

+
+
+
+
+
+
+
+ + +
+
+ education error +
+
+
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
+
+
+
+

+ Social Links + +

+

+ + + + Everyone on localhost + +

+
+ +
-

- My Certificates - -

-

- - - - Everyone on localhost - -

-
-
+

+ About Me + +

+

+ + + + Everyone on localhost + +

+
+

+ This is my bio +

+
+
+
+
+
+

+ My Certificates + +

+

+ + + + Everyone on localhost + +

+
+
- @@ -3592,2044 +3228,1863 @@ exports[` Renders correctly in various states test education edit `; exports[` Renders correctly in various states test preferreded language edit with error 1`] = ` -
+
-
+
- -
-
- profile avatar -
-
- -
-
-
-
-
-
- -

- staff -

-

- Member since - 2017 -

-
-
-
- -
-
-
-
-
- -

- staff -

-

- Member since - 2017 -

-
-
-
- -
-
-
-

- Full Name - -

-

- - - - Just me - -

-
-

- Lemon Seltzer -

- - This is the name that appears in your account and on your certificates. - -
-
-
-
-
-

- Location - -

-

- - - - Everyone on localhost - -

-
-

- Montenegro -

-
-
-
-
-
-
-
- - -
-
- preferred language error -
-
-
-
- - - - - - - -
-
+ profile avatar +
+ +
-
-

- Education - -

+ staff +

- - - - Just me - + Member since + 2017

-
-

- Elementary/primary school -

+
+
-
-
- - + +
-
-

- About Me - -

+ staff +

+ Member since + 2017 +

+
+ +
+ +
+
+
+

+ Full Name + +

+

+ + + + Just me + +

+
+

+ Lemon Seltzer +

+ + This is the name that appears in your account and on your certificates. + +
+
+
+
+
+

+ Location + +

+

+ + + + Everyone on localhost + +

+
+

+ Montenegro

-

+

+
- This is my bio -

+
+
+
+ + +
+
+ preferred language error +
+
+
+
+
+ + + + + + + +
+
+ + +
+
+
+
+
+
+
+
+
+

+ Education + +

+

+ + + + Just me + +

+
+

+ Elementary/primary school +

+
+
+
+
+
+

+ Social Links + +

+

+ + + + Everyone on localhost + +

+
+ +
-

- My Certificates - -

-

- - - - Everyone on localhost - -

-
-
+

+ About Me + +

+

+ + + + Everyone on localhost + +

+
+

+ This is my bio +

+
+
+
+
+
+

+ My Certificates + +

+

+ + + + Everyone on localhost + +

+
+
- @@ -5644,482 +5099,400 @@ exports[` Renders correctly in various states test preferreded la `; exports[` Renders correctly in various states viewing other profile with all fields 1`] = ` -
+
-
-
-
-
-
- -
-
- -
-
-
-
-
-
- -

- staff -

-

- Member since - 2017 -

-
- - - - - -
- Your profile information is only visible to you. Only your username is visible to others on localhost. -
-
-
-
-
- -
-
+ class="profile-page-bg-banner bg-primary d-none d-md-block p-relative" + />
- -

- staff -

-

- Member since - 2017 -

- - - - -
- Your profile information is only visible to you. Only your username is visible to others on localhost. +
+
+ +
-
-
+
+ -
-
-
-

- Full Name -

-
-

- user -

-
-
-
-
-
-

- Location -

-
-

-

-
-
-
-
-

- Primary Language Spoken -

-
-

-

-
-
-
-
-

- Education -

-
-

- Other education -

-
-
-
-
-
-

- Social Links -

-
-
    +
+ +

+ staff +

+

+ Member since + 2017 +

+
+ + + +
+ Your profile information is only visible to you. Only your username is visible to others on localhost. +
+
+
+
+
+ +
-

- About Me -

+

+ Full Name +

+
+

+ user +

-

+

+
- bio -

+
+

+ Location +

+
+

+

+
+
+
+
+

+ Primary Language Spoken +

+
+

+

+
+
+
+
+

+ Education +

+
+

+ Other education +

+
+
+
+
+
+

+ Social Links +

+
+
    +
-

- My Certificates -

+

+ About Me +

+
+

+ bio +

+
+
+
+
+
+

+ My Certificates +

+
+ You don't have any certificates yet.
- You don't have any certificates yet.
@@ -6129,1042 +5502,866 @@ exports[` Renders correctly in various states viewing other profi `; exports[` Renders correctly in various states viewing own profile 1`] = ` -
+
-
+
- + +
+ profile avatar
- profile avatar +
+ +
-
+
+
+
+ - + staff + +

+ Member since + 2017 +

+
- +
+
+
-
-
-
-
- -

- staff -

-

- Member since - 2017 -

-
-
-
- -
-
-
-

- Full Name - -

-

- - - - Just me - -

-
-

- Lemon Seltzer -

- - This is the name that appears in your account and on your certificates. - +
-
-
-

- Location - -

-

- - - - Everyone on localhost - -

-
-

- Montenegro -

-
-
-
-
-
-

- Primary Language Spoken - -

-

- - - - Everyone on localhost - -

-
-

- Yoruba -

-
-
-
-
-
-

- Education - -

-

- - - - Just me - -

-
-

- Elementary/primary school -

-
-
-
-
-
-

- Social Links - -

-

- - - - Everyone on localhost - -

-
- + +

+ + + + Just me + +

+
+

+ Lemon Seltzer +

+ + This is the name that appears in your account and on your certificates. + +
-
-
-
-
-

- About Me - -

-

- - - - Everyone on localhost - -

-
-

- This is my bio -

-
-
-
-
-
-

- My Certificates - -

-

- - - - Everyone on localhost - -

-
-
+

+ Location + +

+

+ + + + Everyone on localhost + +

+
+

+ Montenegro +

+
+
+
+
+
+

+ Primary Language Spoken + +

+

+ + + + Everyone on localhost + +

+
+

+ Yoruba +

+
+
+
+
+
+

+ Education + +

+

+ + + + Just me + +

+
+

+ Elementary/primary school +

+
+
+
+
+
+

+ Social Links + +

+

+ + + + Everyone on localhost + +

+
+ +
+
+
+
+
+
+
+

+ About Me + +

+

+ + + + Everyone on localhost + +

+
+

+ This is my bio +

+
+
+
+
+
+

+ My Certificates + +

+

+ + + + Everyone on localhost + +

+
+
- @@ -7179,1109 +6376,930 @@ exports[` Renders correctly in various states viewing own profile `; exports[` Renders correctly in various states while saving an edited bio 1`] = ` -
+
-
+
- -
-
- profile avatar -
-
- -
-
-
-
-
-
- -

- staff -

-

- Member since - 2017 -

-
-
-
- -
-
-
-
-
- -

- staff -

-

- Member since - 2017 -

-
-
-
- -
-
-
-

- Full Name - -

-

- - - - Just me - -

-
-

- Lemon Seltzer -

- - This is the name that appears in your account and on your certificates. - -
-
-
-
-
-

- Location - -

-

- - - - Everyone on localhost - -

-
-

- Montenegro -

-
-
-
-
-
-

- Primary Language Spoken - -

-

- - - - Everyone on localhost - -

-
-

- Yoruba -

-
-
-
-
-
-

- Education - -

-

- - - - Just me - -

-
-

- Elementary/primary school -

-
-
-
-
-
-

- Social Links - -

-

- - - - Everyone on localhost - -

-
- -
-
-
-
-
-
-
-
-
- - +
-

- Verified Certificate -

-

+ - edX Demonstration Course -

-
-

- From -

-

- edX -

- + +
+
+
+
+
+
+

+ My Certificates + +

+

+ + + + Everyone on localhost + +

+
+
+
+
+
+
+
+

+ Verified Certificate +

+

+ edX Demonstration Course +

+
+

+ From +

+

+ edX +

+
@@ -8296,1117 +7314,938 @@ exports[` Renders correctly in various states while saving an edi `; exports[` Renders correctly in various states while saving an edited bio with error 1`] = ` -
+
-
+
- -
-
- profile avatar -
-
- -
-
-
-
-
-
- -

- staff -

-

- Member since - 2017 -

-
-
-
- -
-
-
-
-
- -

- staff -

-

- Member since - 2017 -

-
-
-
- -
-
-
-

- Full Name - -

-

- - - - Just me - -

-
-

- Lemon Seltzer -

- - This is the name that appears in your account and on your certificates. - -
-
-
-
-
-

- Location - -

-

- - - - Everyone on localhost - -

-
-

- Montenegro -

-
-
-
-
-
-

- Primary Language Spoken - -

-

- - - - Everyone on localhost - -

-
-

- Yoruba -

-
-
-
-
-
-

- Education - -

-

- - - - Just me - -

-
-

- Elementary/primary school -

-
-
-
-
-
-

- Social Links - -

-

- - - - Everyone on localhost - -

-
- -
-
-
-
-
-
-
-
-
- - +
+
+ bio error +
+
+
-

- Verified Certificate -

-

+ - edX Demonstration Course -

-
-

- From -

-

- edX -

- + +
+
+
+
+
+
+

+ My Certificates + +

+

+ + + + Everyone on localhost + +

+
+
+
+
+
+
+
+

+ Verified Certificate +

+

+ edX Demonstration Course +

+
+

+ From +

+

+ edX +

+
@@ -9421,952 +8260,788 @@ exports[` Renders correctly in various states while saving an edi `; exports[` Renders correctly in various states without credentials service 1`] = ` -
+
-
+
- + +
+ profile avatar
- profile avatar +
+ +
-
- -
+
+
+ +

+ staff +

+

+ Member since + 2017 +

+
+
+
+
+
- -

- staff -

-

- Member since - 2017 -

-
-
-
-
-
-
-
-
-
- -

- staff -

-

- Member since - 2017 -

-
-
-
-
-
-
-

- Full Name - -

+ staff +

- - - - Just me - + Member since + 2017

-
-

- Lemon Seltzer -

- - This is the name that appears in your account and on your certificates. - +
+
-
-
+
-

- Location - -

-

- - - - Everyone on localhost - -

-
-

- Montenegro -

-
-
-
-
-
-

- Primary Language Spoken - -

-

- - - - Everyone on localhost - -

-
-

- Yoruba -

-
-
-
-
-
-

- Education - -

-

- - - - Just me - -

-
-

- Elementary/primary school -

-
-
-
-
-
-

- Social Links - -

-

- - - - Everyone on localhost - -

-
- + +

+ + + + Just me + +

+
+

+ Lemon Seltzer +

+ + This is the name that appears in your account and on your certificates. + +
-
-
-
-
-

- About Me - -

-

- - - - Everyone on localhost - -

-
-

- This is my bio -

-
-
-
-
-
-

- My Certificates - -

-

- - - - Everyone on localhost - -

-
-
+

+ Location + +

+

+ + + + Everyone on localhost + +

+
+

+ Montenegro +

+
+
+
+
+
+

+ Primary Language Spoken + +

+

+ + + + Everyone on localhost + +

+
+

+ Yoruba +

+
+
+
+
+
+

+ Education + +

+

+ + + + Just me + +

+
+

+ Elementary/primary school +

+
+
+
+
+
+

+ Social Links + +

+

+ + + + Everyone on localhost + +

+
+ +
+
+
+
+
+
+
+

+ About Me + +

+

+ + + + Everyone on localhost + +

+
+

+ This is my bio +

+
+
+
+
+
+

+ My Certificates + +

+

+ + + + Everyone on localhost + +

+
+
- diff --git a/src/profile/forms/LearningGoal.test.jsx b/src/profile/forms/LearningGoal.test.jsx index 1143aff..dcb63b1 100644 --- a/src/profile/forms/LearningGoal.test.jsx +++ b/src/profile/forms/LearningGoal.test.jsx @@ -1,7 +1,7 @@ import PropTypes from 'prop-types'; import React, { useMemo } from 'react'; import { Provider } from 'react-redux'; -import renderer from 'react-test-renderer'; +import { render, screen } from '@testing-library/react'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; import { configure as configureI18n, IntlProvider } from '@edx/frontend-platform/i18n'; @@ -92,31 +92,25 @@ LearningGoalWrapperWithStore.propTypes = { describe('', () => { describe('renders the current learning goal', () => { it('renders "I want to advance my career"', () => { - const learningGoalRenderer = renderer.create( + render( , ); - - const learningGoalInstance = learningGoalRenderer.root; - - expect(learningGoalInstance.findByProps({ className: 'lead' }).children).toEqual(['I want to advance my career']); + expect(screen.getByText('I want to advance my career')).toBeTruthy(); }); it('renders "Something else"', () => { requiredLearningGoalProps.learningGoal = 'something_else'; - const learningGoalRenderer = renderer.create( + render( , ); - - const learningGoalInstance = learningGoalRenderer.root; - - expect(learningGoalInstance.findByProps({ className: 'lead' }).children).toEqual(['Something else']); + expect(screen.getByText('Something else')).toBeTruthy(); }); }); }); diff --git a/src/profile/forms/SocialLinks.test.jsx b/src/profile/forms/SocialLinks.test.jsx index 7ac6822..0392d06 100644 --- a/src/profile/forms/SocialLinks.test.jsx +++ b/src/profile/forms/SocialLinks.test.jsx @@ -2,7 +2,6 @@ import { render, fireEvent, screen } from '@testing-library/react'; import PropTypes from 'prop-types'; import React, { useMemo } from 'react'; import { Provider } from 'react-redux'; -import renderer from 'react-test-renderer'; import configureMockStore from 'redux-mock-store'; import thunk from 'redux-thunk'; import { configure as configureI18n, IntlProvider } from '@edx/frontend-platform/i18n'; @@ -103,7 +102,7 @@ describe('', () => { ['certificates', 'bio', 'goals', 'socialLinks'].forEach(editMode => ( it(`calls social links with edit mode ${editMode}`, () => { const component = ; - const tree = renderer.create(component).toJSON(); + const { container: tree } = render(component); expect(tree).toMatchSnapshot(); }) )); diff --git a/src/profile/forms/__snapshots__/SocialLinks.test.jsx.snap b/src/profile/forms/__snapshots__/SocialLinks.test.jsx.snap index f0aa6c8..74fb7e2 100644 --- a/src/profile/forms/__snapshots__/SocialLinks.test.jsx.snap +++ b/src/profile/forms/__snapshots__/SocialLinks.test.jsx.snap @@ -1,586 +1,504 @@ // Jest Snapshot v1, https://goo.gl/fbAQLP exports[` calls social links with edit mode bio 1`] = ` -
+
-
-
- -
-
-
    -
  • - - -
  • -
  • - - -
  • -
-
- - - - - - - + Social Links +
+
    -
+
+
+ + + + + +
+
+ - + + +
-
- + +
`; exports[` calls social links with edit mode certificates 1`] = ` -
+
-

- Social Links - -

-

+ + + + Just me + +

+
+
-
`; exports[` calls social links with edit mode goals 1`] = ` -
+
-

- Social Links -

+

+ Social Links +

+
+
    +
  • +
    + +
    +
  • +
  • +
    + +
    +
  • +
-
    -
  • -
    - -
    -
  • -
  • -
    - -
    -
  • -
`; exports[` calls social links with edit mode socialLinks 1`] = ` -
+
-

- Social Links - -

-

+ + + + Just me + +

+
+
-
`;