Advertisement
Guest User

Untitled

a guest
Mar 23rd, 2021
85
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. //users.test.js
  2.  
  3. beforeEach(() => {
  4.         container = document.createElement("div");
  5.         document.body.appendChild(container);
  6.         mockStore = store
  7.     })
  8.  
  9.     afterEach(() => {
  10.         unmountComponentAtNode(container);
  11.         container.remove();
  12.         container = null;
  13.     });
  14.  
  15.     test('Users components rendering testing', () => {
  16.         act(() => {
  17.             render(<Provider store={mockStore}><Users users={mockProps.users}/></Provider>, container)
  18.         })
  19.         console.log(container.innerHTML)
  20.     })
  21.  
  22. //users.js
  23. // до этого идут функции, константы и работа со стейтом
  24. return ReactDOM.createPortal(
  25.         <div className={props.usersActive ? CH.darkBackground : CH.darkBackgroundHidden}
  26.         >
  27.             <div className={CH.creatorContainer} ref={domNode}>
  28.                 {!userOpen && <div className={CH.chatGrid}>
  29.                     <div className={CH.chatsHeader}>
  30.                         <h1>Пользователи для {props.userRole}</h1>
  31.                     </div>
  32.                     <div className={CH.chats}>
  33.                         {users.map(user => <UserElement id={user.user_id} name={user.user_name} mail={user.user_email}
  34.                                                         deleteUser={deleteUser} openUser={openUser}/>)}
  35.                     </div>
  36.                 </div>}
  37.                 {userOpen && <User closeUser={closeUser} chatId={userOpen} name={currName} mail={currMail} uid={currId}/>}
  38.             </div>
  39.  
  40.  
  41.         </div>,
  42.         document.getElementById("portal")
  43.     )
  44. //user.js
  45. // тут мой подход работает, так как возвращается сразу DOM-элемент
  46. return (
  47.         <div className={AT.adminUser}>
  48.             <div className={AT.adminHeader}><h1>Информация пользователя</h1>
  49.                 <div>
  50.                     <button className={AT.saveButton} onClick={saveUserData}> Сохранить</button>
  51.                     <button className={AT.deleteTopicButton} onClick={handleCloseUser}> Назад </button>
  52.                 </div>
  53.             </div>
  54.  
  55.             <label className={AT.userLabel}>Имя пользователя</label>
  56.             <input className={AT.inputCreator} value={userName} onChange={e => setUserName(e.target.value)}/>
  57.             <label className={AT.userLabel}>Email пользователя</label>
  58.             <input className={AT.inputCreator} value={userMail} onChange={e => setUserMail(e.target.value)}/>
  59.             <label className={AT.userLabel}>Пароль пользователя</label>
  60.             <input className={AT.inputCreator} value={userPass} type={'password'} onChange={e => setUserPass(e.target.value)}/>
  61.         </div>
  62.     )
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement