рдореИрдВ рдЕрдм рддрдХ рдЬреЗрд╕реНрдЯ рдХреЛ рд░рд┐рдПрдХреНрдЯ рдШрдЯрдХреЛрдВ рдХрд╛ рдкрд░реАрдХреНрд╖рдг рдХрд░рдирд╛ рдкрд╕рдВрдж рдХрд░ рд░рд╣рд╛ рд╣реВрдВред
рдореИрдВрдиреЗ рд╣рд╛рд▓рд╛рдВрдХрд┐ рдиреЛрдб рдмреИрдХрдПрдВрдб рдХреЗ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдореЛрдЪрд╛/рдЬреИрд╕реНрдореАрди рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рд╣реИ, рдФрд░ рдореИрдВ рд╕рд┐рд░реНрдл рдпрд╣ рдкреВрдЫрдирд╛ рдЪрд╛рд╣рддрд╛ рдерд╛ рдХрд┐ рдмреИрдХрдПрдВрдб рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ (рдФрд░ рдЕрдиреБрд╢рдВрд╕рд┐рдд), рдХреНрдпреЛрдВрдХрд┐ рдореБрдЭреЗ рджрд╕реНрддрд╛рд╡реЗрдЬрд╝реЛрдВ рдореЗрдВ рдЗрд╕рдХрд╛ рдХреЛрдИ рд╕рдВрдХреЗрдд рдирд╣реАрдВ рдорд┐рд▓рд╛ (рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ , React-Native, Async, Webpack, рдпрд╛рдиреА рдирд╣реАрдВ Node
)
рдореИрдВрдиреЗ рдЕрднреА рдЗрд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдиреЗ рдХреА рдХреЛрд╢рд┐рд╢ рдХреА, рдФрд░ рджреБрд░реНрднрд╛рдЧреНрдп рд╕реЗ рдореИрдВрдиреЗ рддрддреНрдХрд╛рд▓ рд░реЛрдбрдмреНрд▓реЙрдХ рдорд╛рд░рд╛ред brcypt
рдПрдХ [SECURITY] node-uuid: crypto not usable, falling back to insecure Math.random()
рдЪреЗрддрд╛рд╡рдиреА рдЯреНрд░рд┐рдЧрд░ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкрд░реАрдХреНрд╖рдг рдПрдХ рд░рдирдЯрд╛рдЗрдо рддреНрд░реБрдЯрд┐ ( TypeError: Path must be a string. Received undefined
) рдХреЗ рдХрд╛рд░рдг рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рддрд╛ рд╣реИ
рдХреНрдпрд╛ рдЕрднреА рдмреИрдХрдПрдВрдб рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рдирд╛ рд╕рдВрднрд╡ рд╣реИ, рдпрд╛ рдпрд╣ рдкрд░рд┐рдпреЛрдЬрдирд╛ рдХреЗ рджрд╛рдпрд░реЗ рдХрд╛ рд╣рд┐рд╕реНрд╕рд╛ рдирд╣реАрдВ рд╣реИ рдФрд░ рдЬреИрд╕реНрдореАрди рдЬреИрд╕рд╛ рдХреБрдЫ рдмреЗрд╣рддрд░ рдлрд┐рдЯ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ?
рдЖрдк рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмреИрдХрдПрдВрдб рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЬреЗрд╕реНрдЯ рд╕реНрд╡рдпрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рднрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рдЬреАрдердм рдкрд░ рдПрдХ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ npm install
рдФрд░ npm test
рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ?
рдореИрдВ рджреЛ рдЪреАрдЬреЛрдВ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ: "automock": false
рдФрд░ "testEnvironment": "node"
ред рдпрджрд┐ рдЖрдкрдХреЗ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рдЗрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рдЕрд▓рдЧ рдЬреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ --config=pathToConfig.json
рд╕рд╛рде рдЬреЗрд╕реНрдЯ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлреНрд░рдВрдЯрдПрдВрдб рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП modulePathIgnorePatterns
рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред
рддреНрд╡рд░рд┐рдд рдЙрддреНрддрд░ @cpojer рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рдж!
рдпрд╣ рд╕реБрдирдХрд░ рдЦреБрд╢реА рд╣реБрдИ рдХрд┐ рдЬреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдиреЛрдб рдХреЗ рд╕рд╛рде рдХрд┐рдпрд╛ рдЬрд╛ рд╕рдХрддрд╛ рд╣реИ! рдореИрдВ рд╕реЛрдЪ рд░рд╣рд╛ рдерд╛, рдХреНрдпреЛрдВрдХрд┐ рдпрд╣ рдЕрдирд┐рд╡рд╛рд░реНрдп рд░реВрдк рд╕реЗ рдПрдХ рдкрд░реАрдХреНрд╖рдг рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╣реИ рдФрд░ рдПрдкреАрдЖрдИ рдХреЛ рдмрд╕ рдХрд╛рдо рдХрд░рдирд╛ рдЪрд╛рд╣рд┐рдП, рд▓реЗрдХрд┐рди рдЗрд╕реЗ рд╡рд┐рд╢реЗрд╖ рд░реВрдк рд╕реЗ рдкреВрдЫрдиреЗ рдХреА рдЖрд╡рд╢реНрдпрдХрддрд╛ рдорд╣рд╕реВрд╕ рд╣реБрдИ рдХреНрдпреЛрдВрдХрд┐ рдСрдирд▓рд╛рдЗрди рд▓рдЧрднрдЧ рдХреЛрдИ рд╕рдВрд╕рд╛рдзрди рдирд╣реАрдВ рд╣реИ рдЬреЛ рдЗрд╕реЗ рдиреЛрдб рдмреИрдХрдПрдВрдб рдХреЗ рд╕рд╛рде рдЙрдкрдпреЛрдЧ рдХрд┐рдпрд╛ рдЬрд╛ рд░рд╣рд╛ рд╣реИ рдФрд░ рдЬреНрдпрд╛рджрд╛рддрд░ рдкреНрд░рддрд┐рдХреНрд░рд┐рдпрд╛ рдХреЗ рд╕рд╛рде (рдпрд╛ рдореЗрд░рд╛ Google-Fu) рдмрд╕ рдХрд╛рдлреА рдЕрдЪреНрдЫрд╛ рдирд╣реАрдВ рдерд╛)ред
рдореИрдВ рдкрд╣рд▓реЗ рд╕реЗ рд╣реА рдЕрдкрдиреЗ node_modules
рдордЬрд╝рд╛рдХ рдЙрдбрд╝рд╛ рд░рд╣рд╛ рдерд╛, testEnvironment: node
рдиреЗ рдЪрд╛рд▓ рдЪрд▓реА!
рдЪреАрдпрд░реНрд╕!
рд╣рд╛рдВ, рдбрд┐рдлрд╝реЙрд▓реНрдЯ рд╡рд╛рддрд╛рд╡рд░рдг ( jsdom
) рд╣рдореЗрд╢рд╛ рдЦреБрдж рдХреЛ рдиреЛрдб рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЕрдЪреНрдЫреА рддрд░рд╣ рд╕реЗ рдЙрдзрд╛рд░ рдирд╣реАрдВ рджреЗрддрд╛ рд╣реИред рдПрдХ рдФрд░ рд▓рд╛рдн рдпрд╣ рд╣реИ рдХрд┐ рдиреЛрдб рдПрдирд╡реА 500ms рддреЗрдЬреА рд╕реЗ (рдкреНрд░рднрд╛рд╡реА рд░реВрдк рд╕реЗ рддрддреНрдХрд╛рд▓) рд▓реЛрдб рдХрд░реЗрдЧрд╛ рдХреНрдпреЛрдВрдХрд┐ рдЬреЗрдПрд╕рдбреЙрдо рдереЛрдбрд╛ рдзреАрдорд╛ рд╣реИред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рдЖрдк рдХрд┐рд╕ рдкреНрд░рдХрд╛рд░ рдХрд╛ рдмреИрдХрдПрдВрдб рдкрд░реАрдХреНрд╖рдг рдХрд░рдиреЗ рдХрд╛ рдкреНрд░рдпрд╛рд╕ рдХрд░ рд░рд╣реЗ рд╣реИрдВ? рдЬреЗрд╕реНрдЯ рд╕реНрд╡рдпрдВ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддрд╛ рд╣реИ рдФрд░ рдкреБрд╕реНрддрдХрд╛рд▓рдпреЛрдВ рдХреЗ рднрд╛рд░ рдкрд░реАрдХреНрд╖рдг рдХреЗ рд▓рд┐рдП рдЬреЗрд╕реНрдЯ рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░рддреЗ рд╣реИрдВред рдХреНрдпрд╛ рдЖрдк рдЬреАрдердм рдкрд░ рдПрдХ рд░рд┐рдкреЛрдЬрд┐рдЯрд░реА рдкреНрд░рджрд╛рди рдХрд░ рд╕рдХрддреЗ рд╣реИрдВ рдЬрд┐рд╕рдХрд╛ рдЙрдкрдпреЛрдЧ рдореИрдВ
npm install
рдФрд░npm test
рдХрд░ рд╕рдХрддрд╛ рд╣реВрдВ рдЬреЛ рдЖрдкрдХреА рд╕рдорд╕реНрдпрд╛ рджрд┐рдЦрд╛рддрд╛ рд╣реИ?рдореИрдВ рджреЛ рдЪреАрдЬреЛрдВ рдХреА рдЕрдиреБрд╢рдВрд╕рд╛ рдХрд░рддрд╛ рд╣реВрдВ:
"automock": false
рдФрд░"testEnvironment": "node"
ред рдпрджрд┐ рдЖрдкрдХреЗ рдЕрдиреНрдп рдкрд░реАрдХреНрд╖рдг рдЗрд╕ рдкрд░ рднрд░реЛрд╕рд╛ рдХрд░рддреЗ рд╣реИрдВ, рддреЛ рдЖрдк рдПрдХ рдЕрд▓рдЧ рдЬреЗрд╕реНрдЯ рдХреЙрдиреНрдлрд╝рд┐рдЧрд░реЗрд╢рди рдмрдирд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░--config=pathToConfig.json
рд╕рд╛рде рдЬреЗрд╕реНрдЯ рдЪрд▓рд╛ рд╕рдХрддреЗ рд╣реИрдВ рдФрд░ рдлреНрд░рдВрдЯрдПрдВрдб рдкрд░реАрдХреНрд╖рдгреЛрдВ рдХреЛ рдЕрдирджреЗрдЦрд╛ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдПmodulePathIgnorePatterns
рдХрд░ рд╕рдХрддреЗ рд╣реИрдВред