рд╣рд╛рдп рд╕рд┐рдиреЙрди! рдкреВрд░реНрд╡-рд░рд┐рд▓реАрдЬрд╝ рд╕рдВрд╕реНрдХрд░рдг рдореЗрдВ рдЬреЛрдбрд╝реЗ рдЧрдП рд╢рд╛рдирджрд╛рд░ рдирдИ рд╕реБрд╡рд┐рдзрд╛рдУрдВ рдХреЗ рд╕рд╛рде рднрдпрд╛рдирдХ рдкреБрд╕реНрддрдХрд╛рд▓рдп рдкреНрд░рджрд╛рди рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред рдореИрдВ рдирдП рдкреЗрд╢ рдХрд┐рдП рдЧрдП рдПрдкреАрдЖрдИ рдХреЗ рд▓рд┐рдП рдкреНрд░реА рдХрд╛ рдЙрдкрдпреЛрдЧ рдХрд░ рд░рд╣рд╛ рд╣реВрдВ (рдореИрдВ рдЦреБрдж рдПрдХреНрд╕рдЯреЗрдВрд╢рди рд▓рд┐рдЦрдиреЗ рдЬрд╛ рд░рд╣рд╛ рдерд╛ рдФрд░ рдореБрдЭреЗ рд╕реНрд░реЛрдд рдХреЗ рдорд╛рдзреНрдпрдо рд╕реЗ рдЦреБрджрд╛рдИ рдХрд░рддреЗ рд╣реБрдП рдХреЛрдб рдорд┐рд▓рд╛) рд▓реЗрдХрд┐рди .6 рд░рд┐рд▓реАрдЬ рдиреЗ рд╣рдорд╛рд░реЗ рдмрдбрд╝реЗ рдкрд░реАрдХреНрд╖рдг рд╕реВрдЯ рдХреЛ рддреЛрдбрд╝ рджрд┐рдпрд╛ред
рдЖрдкрдиреЗ рдХреНрдпрд╛ рд╣реЛрдиреЗ рдХреА рдЙрдореНрдореАрдж рдХреА рдереА?
рдореБрдЭреЗ рдЙрдореНрдореАрдж рдирд╣реАрдВ рдереА рдХрд┐ .deep.equals
рджрд╛рд╡рд╛ рд╡рд┐рдлрд▓ рд╣реЛ рдЬрд╛рдПрдЧрд╛ рдЬрдм рдЕрд▓рдЧ рд▓реЗрдХрд┐рди рддреНрд░реБрдЯрд┐ рдХрд╛ "рдмрд░рд╛рдмрд░" рдЙрджрд╛рд╣рд░рдг рдкрд╛рд░рд┐рдд рдХрд┐рдпрд╛ рдЧрдпрд╛ рдерд╛
рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рдХреНрдпрд╛ рд╣реЛрддрд╛ рд╣реИ
Error
рдХреЗ рдХрд┐рд╕реА рднреА рдЙрдкрд╡рд░реНрдЧ рдХреЗ рд▓рд┐рдП, рдЧрд╣рд░рд╛ equals
рд╕рдЯреАрдХ equals
ред https://github.com/sinonjs/sinon/blob/master/lib/sinon/util/core/deep-equal.js#L54 -L56
рд╣реЗрд▓реЛ рд╕рдм рд▓реЛрдЧ!
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдХрд░рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЙрд╕ if
рдЦрдВрдб рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВред
Chai
рд╣рдореЗрдВ deep-eql
рдирд╛рдордХ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рдЧрд╣рди рд╕рдорд╛рдирддрд╛ рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЪрд╛рдИ рдХреЗ рдореВрд▓ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИред
рдЙрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЕрдкрдирд╛рдХрд░ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рднреА рдЙрд╕реА рдХреЛрдбрдмреЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ рддрд╛рдХрд┐ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рд╕рд╛рде рд╣реА, рдпрд╣ рдЕрднреА рднреА рд╣рдореЗрдВ use
рд╡рд┐рдзрд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ comparator
рддрд░реНрдХ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ ред
рдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдкрдирд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рднреА рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред
@lucasfcosta рдореБрдЭреЗ рдкреНрд░рд╕реНрддрд╛рд╡рд┐рдд рд╕рдорд╛рдзрд╛рди рдкрд╕рдВрдж рд╣реИред рдПрдХ рддреБрд▓рдирд┐рддреНрд░ рд╡рд┐рдХрд▓реНрдк рдмрдирдиреЗ рдХреЗ рд▓рд┐рдП match
рдХреЛ рдЙрд▓рдЭрд╛рдирд╛ рдереЛрдбрд╝рд╛ рдЪреБрдиреМрддреА рднрд░рд╛ рд╣реЛ рд╕рдХрддрд╛ рд╣реИ ... рд▓реЗрдХрд┐рди рдРрд╕рд╛ рд▓рдЧрддрд╛ рд╣реИ рдХрд┐ рдЖрдк рдЪреБрдиреМрддрд┐рдпреЛрдВ рдХреЛ рдкрд╕рдВрдж рдХрд░рддреЗ рд╣реИрдВ;)
рдореБрдЭреЗ рдПрдХ рдРрд╕рд╛ рдкреАрдЖрд░ рджреЗрдЦрдирд╛ рдЕрдЪреНрдЫрд╛ рд▓рдЧреЗрдЧрд╛ рдЬреЛ рдХреЛрдбрдмреЗрд╕ рдХреЗ рдЖрдХрд╛рд░ рдХреЛ рдХрдо рдХрд░рддрд╛ рд╣реИ
рдЗрд╕ рд╕рдорд╕реНрдпрд╛ рдХреЛ рд╕реНрд╡рдЪрд╛рд▓рд┐рдд рд░реВрдк рд╕реЗ рдкреБрд░рд╛рдиреЗ рдХреЗ рд░реВрдк рдореЗрдВ рдЪрд┐рд╣реНрдирд┐рдд рдХрд░ рджрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐ рдЗрд╕рдореЗрдВ рд╣рд╛рд▓ рдХреА рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реИред рдЖрдЧреЗ рдХреЛрдИ рдЧрддрд┐рд╡рд┐рдзрд┐ рдирд╣реАрдВ рд╣реЛрдиреЗ рдкрд░ рдЗрд╕реЗ рдмрдВрдж рдХрд░ рджрд┐рдпрд╛ рдЬрд╛рдПрдЧрд╛ред рдЖрдкрдХреЗ рдпреЛрдЧрджрд╛рдиреЛрдВ рдХреЗ рд▓рд┐рдП рдзрдиреНрдпрд╡рд╛рджред
рд╕рдмрд╕реЗ рдЙрдкрдпреЛрдЧреА рдЯрд┐рдкреНрдкрдгреА
рд╣реЗрд▓реЛ рд╕рдм рд▓реЛрдЧ!
рдпрд╣ рд╡рд╛рд╕реНрддрд╡ рдореЗрдВ рд╣рд▓ рдХрд░рдиреЗ рдХреЗ рд▓рд┐рдП рдХреБрдЫ рдЖрд╕рд╛рди рд╣реИ рдФрд░ рдореИрдВ рдЗрд╕рдХреЗ рд▓рд┐рдП рдкреАрдЖрд░ рдХрд░рдиреЗ рдХреЛ рддреИрдпрд╛рд░ рд╣реВрдВред рд╣рд╛рд▓рд╛рдВрдХрд┐, рдореИрдВ рдЙрд╕
if
рдЦрдВрдб рдХреЛ рдареАрдХ рдХрд░рдиреЗ рдХреЗ рдЕрд▓рд╛рд╡рд╛ рдПрдХ рдЕрд▓рдЧ рджреГрд╖реНрдЯрд┐рдХреЛрдг рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдирд╛ рдЪрд╛рд╣рддрд╛ рд╣реВрдВредChai
рд╣рдореЗрдВdeep-eql
рдирд╛рдордХ рдПрдХ рдореЙрдбреНрдпреВрд▓ рдорд┐рд▓рд╛ рд╣реИ рдЬреЛ рдЧрд╣рди рд╕рдорд╛рдирддрд╛ рдЬрд╛рдВрдЪ рдХрд░рддрд╛ рд╣реИред рдЗрд╕рдХрд╛ рд╡реНрдпрд╛рдкрдХ рдкрд░реАрдХреНрд╖рдг рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдкреНрд░рджрд░реНрд╢рди рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдареАрдХ рдХрд┐рдпрд╛ рдЧрдпрд╛ рд╣реИ рдФрд░ рдЪрд╛рдИ рдХреЗ рдореВрд▓ рдкрд░ рдареАрдХ рдХрд╛рдо рдХрд░рддрд╛ рд╣реИредрдЙрд╕реА рд▓рд╛рдЗрдмреНрд░реЗрд░реА рдХреЛ рдЕрдкрдирд╛рдХрд░ рд╣рдо рднрд╡рд┐рд╖реНрдп рдореЗрдВ рднреА рдЙрд╕реА рдХреЛрдбрдмреЗрд╕ рдкрд░ рдХрд╛рдо рдХрд░ рд░рд╣реЗ рд╣реЛрдВрдЧреЗ рддрд╛рдХрд┐ рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗ рдФрд░ рдЗрд╕рдХрд╛ рдЗрд╕реНрддреЗрдорд╛рд▓ рдХрд░рдиреЗ рд╡рд╛рд▓реЗ рд╣рд░ рдкреНрд░реЛрдЬреЗрдХреНрдЯ рдХреЗ рд▓рд┐рдП рдЗрд╕реЗ рдмреЗрд╣рддрд░ рдмрдирд╛рдпрд╛ рдЬрд╛ рд╕рдХреЗред
рд╕рд╛рде рд╣реА, рдпрд╣ рдЕрднреА рднреА рд╣рдореЗрдВ
use
рд╡рд┐рдзрд┐ рдХреА рдЕрдиреБрдорддрд┐ рджреЗрддрд╛ рд╣реИ рдХреНрдпреЛрдВрдХрд┐comparator
рддрд░реНрдХ рдпрд╣ рдкреБрд╕реНрддрдХрд╛рд▓рдп рд╕реНрд╡реАрдХрд╛рд░ рдХрд░рддрд╛ рд╣реИ редрдпрджрд┐ рдЖрдк рдЗрд╕реЗ рдЕрдкрдирд╛рдирд╛ рдирд╣реАрдВ рдЪрд╛рд╣рддреЗ рд╣реИрдВ рддреЛ рдпрд╣ рднреА рдареАрдХ рд╣реИ, рд▓реЗрдХрд┐рди рдореИрдВрдиреЗ рдЗрд╕ рдореБрджреНрджреЗ рдХреЛ рд╣рд▓ рдХрд░рдиреЗ рд╕реЗ рдкрд╣рд▓реЗ рдЗрд╕рдХрд╛ рд╕реБрдЭрд╛рд╡ рджреЗрдиреЗ рдХреЗ рдмрд╛рд░реЗ рдореЗрдВ рд╕реЛрдЪрд╛ред