Page Not Found
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
From 2f169070b31bce1740815f89009f6fbd4a15105b Mon Sep 17 00:00:00 2001 From: ahnpnl <27772165+ahnpnl@users.noreply.github.com> Date: Thu, 9 Jan 2025 19:20:33 +0000 Subject: [PATCH] =?UTF-8?q?Deploying=20to=20gh-pages=20from=20@=20thymikee?= =?UTF-8?q?/jest-preset-angular@f19a8535a49fc34929f5a2ed5530fe17d642e9eb?= =?UTF-8?q?=20=F0=9F=9A=80?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- 404.html | 4 ++-- assets/js/{029bedf1.ad44e546.js => 029bedf1.554287b3.js} | 2 +- assets/js/{02a1e558.9d745bd3.js => 02a1e558.e45291e7.js} | 2 +- assets/js/{03be7dae.29b34983.js => 03be7dae.35a7d248.js} | 2 +- assets/js/{04ae74d1.4923c42d.js => 04ae74d1.9296140c.js} | 2 +- assets/js/{04b3fc6c.8fb1477b.js => 04b3fc6c.7bf3b6a0.js} | 2 +- assets/js/{05916282.7d5215e3.js => 05916282.86477b8a.js} | 2 +- assets/js/{08804573.70599929.js => 08804573.0a6b1e32.js} | 2 +- assets/js/{097bb47a.0f15acaa.js => 097bb47a.9367242a.js} | 2 +- assets/js/{09df063d.a3ab4269.js => 09df063d.4ece039c.js} | 2 +- assets/js/{0d71a3f1.f31ccf7c.js => 0d71a3f1.364e7c31.js} | 2 +- assets/js/{0dc350cc.36b27890.js => 0dc350cc.36d1137f.js} | 2 +- assets/js/{0e35f71d.d0361ccc.js => 0e35f71d.97d6f6f8.js} | 2 +- assets/js/{13973f06.45aac155.js => 13973f06.27bdaec1.js} | 2 +- assets/js/{1438ea8f.ce71650a.js => 1438ea8f.66445ba5.js} | 2 +- assets/js/{151633a5.e7adf69f.js => 151633a5.2f5dcee4.js} | 2 +- assets/js/{15a051c9.210d9832.js => 15a051c9.537a8a45.js} | 2 +- assets/js/{164a8de7.1e70e494.js => 164a8de7.2747ccd8.js} | 2 +- assets/js/{1a421168.9944178b.js => 1a421168.7af4f1c4.js} | 2 +- assets/js/{1a5572f6.5c0ff7de.js => 1a5572f6.dbaaad53.js} | 2 +- assets/js/{1d8e39f8.c52cb48c.js => 1d8e39f8.fc0b27b1.js} | 2 +- assets/js/{1e388ac9.37808e16.js => 1e388ac9.e7f6548a.js} | 2 +- assets/js/{203fc93e.f300ab1d.js => 203fc93e.c5c75614.js} | 2 +- assets/js/{22e4d634.4a12f9b4.js => 22e4d634.034294ba.js} | 2 +- assets/js/{252e2b80.8cfae68c.js => 252e2b80.fd6e1ea1.js} | 2 +- assets/js/{26cb42b7.1068b9ef.js => 26cb42b7.842bebec.js} | 2 +- assets/js/{27299a3b.2461f1fe.js => 27299a3b.02f489b3.js} | 2 +- assets/js/{27af8d7b.523d46b2.js => 27af8d7b.5e56336a.js} | 2 +- assets/js/{29d26392.9bb856ef.js => 29d26392.4f77932f.js} | 2 +- assets/js/{2a474b18.6b2cba82.js => 2a474b18.3610569a.js} | 2 +- assets/js/{2ab18ce5.0814d542.js => 2ab18ce5.be767bbf.js} | 2 +- assets/js/{2ae17008.46dc7a20.js => 2ae17008.59fdc952.js} | 2 +- assets/js/{2e81e74f.1e0024b5.js => 2e81e74f.5b257d2f.js} | 2 +- assets/js/{30388853.e2dc0b0e.js => 30388853.97619423.js} | 2 +- assets/js/{327b6d8e.9c05d38c.js => 327b6d8e.af110dce.js} | 2 +- assets/js/{33a5adb4.98b17df4.js => 33a5adb4.5afaf9fd.js} | 2 +- assets/js/{357d33d4.f720e597.js => 357d33d4.e911d2a0.js} | 2 +- assets/js/{388d3430.a0a277d9.js => 388d3430.3969a841.js} | 2 +- assets/js/{3b270bcb.7d7a7941.js => 3b270bcb.fa1a55fa.js} | 2 +- assets/js/{3c7caf67.b4a29cf8.js => 3c7caf67.36f2011d.js} | 2 +- assets/js/{407f8801.9d29b948.js => 407f8801.24e1cce2.js} | 2 +- assets/js/{433cefd8.2379da9b.js => 433cefd8.6c3f6b48.js} | 2 +- assets/js/{4351d34b.26e8d588.js => 4351d34b.2f4c746e.js} | 2 +- assets/js/{44821296.4c55fc38.js => 44821296.4c3af857.js} | 2 +- assets/js/{44b4d73b.acbf1742.js => 44b4d73b.448b1aaa.js} | 2 +- assets/js/{47c825a2.f431be4d.js => 47c825a2.362f7626.js} | 2 +- assets/js/{47cccd8d.5f1e4b54.js => 47cccd8d.3b57cb41.js} | 2 +- assets/js/{48dd39e2.d6275f21.js => 48dd39e2.82b1aefa.js} | 2 +- assets/js/{4941928a.34cbbeda.js => 4941928a.013d282d.js} | 2 +- assets/js/{494f4f5e.52f1ab49.js => 494f4f5e.ce842b6a.js} | 2 +- assets/js/{4b3f866b.8736ed0c.js => 4b3f866b.7a9444da.js} | 2 +- assets/js/{4e0c07c5.0409bb11.js => 4e0c07c5.a948bc56.js} | 2 +- assets/js/{51d67042.2ebbc019.js => 51d67042.a84f2c5b.js} | 2 +- assets/js/{5253afba.cfab21ee.js => 5253afba.462c5ed9.js} | 2 +- assets/js/{54071611.27089a6f.js => 54071611.a6c91af3.js} | 2 +- assets/js/{5465ebbc.fa916b29.js => 5465ebbc.73acce35.js} | 2 +- assets/js/{54f44165.06f9f558.js => 54f44165.21d177ad.js} | 2 +- assets/js/{5635425a.7600f61a.js => 5635425a.427f6e85.js} | 2 +- assets/js/{56acf0ae.b1aae639.js => 56acf0ae.fbebf62a.js} | 2 +- assets/js/{5ae6b2db.fc04ae9b.js => 5ae6b2db.6c6726af.js} | 2 +- assets/js/{5b125e0e.4771f7c6.js => 5b125e0e.2977f500.js} | 2 +- assets/js/{5b1cb890.88584ec3.js => 5b1cb890.5f66cfab.js} | 2 +- assets/js/{5ee9d842.2e2a38d3.js => 5ee9d842.8dd98d40.js} | 2 +- assets/js/{5f85402d.ebaeebda.js => 5f85402d.2b7e7ca6.js} | 2 +- assets/js/{6059e070.5a47e8ed.js => 6059e070.0c57532e.js} | 2 +- assets/js/{6266f1ba.932a3bf3.js => 6266f1ba.64ac2ef8.js} | 2 +- assets/js/{63150b11.8d44a0a9.js => 63150b11.522ddf33.js} | 2 +- assets/js/{651850eb.d532c08a.js => 651850eb.71bda44e.js} | 2 +- assets/js/{6608151e.61eb264a.js => 6608151e.a13408cb.js} | 2 +- assets/js/{68240572.486ac810.js => 68240572.34025962.js} | 2 +- assets/js/{68e3f1d5.f3f2f2dc.js => 68e3f1d5.d6f523ad.js} | 2 +- assets/js/{6916680a.d18ad14c.js => 6916680a.fed0f3c5.js} | 2 +- assets/js/{6a6dcee7.77005447.js => 6a6dcee7.e60237b9.js} | 2 +- assets/js/{6d1ddfa7.c63582d4.js => 6d1ddfa7.6bf79768.js} | 2 +- assets/js/{6f809103.c7030008.js => 6f809103.c4db68d4.js} | 2 +- assets/js/{710ad8a9.c8e222ac.js => 710ad8a9.721bff68.js} | 2 +- assets/js/{72f058d3.8f9a80ce.js => 72f058d3.71ed472c.js} | 2 +- assets/js/{732c3ce9.be04e461.js => 732c3ce9.dcdef48d.js} | 2 +- assets/js/{79ea3e73.771f973a.js => 79ea3e73.45844d09.js} | 2 +- assets/js/{7aeeadd4.c321de8b.js => 7aeeadd4.dcd0791b.js} | 2 +- assets/js/{80b4c599.8a5f4069.js => 80b4c599.bc3556b9.js} | 2 +- assets/js/{85e14910.f957004d.js => 85e14910.0a8f4b07.js} | 2 +- assets/js/{8665e647.da6859ba.js => 8665e647.5fae0771.js} | 2 +- assets/js/{8afa1348.5c957e34.js => 8afa1348.76071903.js} | 2 +- assets/js/{8b263414.111f919e.js => 8b263414.c5fd847b.js} | 2 +- assets/js/{8f3baa16.c7c8a87a.js => 8f3baa16.1991da9e.js} | 2 +- assets/js/{915eea02.c73dab5e.js => 915eea02.02787d2d.js} | 2 +- assets/js/{9251a350.f9f248b4.js => 9251a350.3796dd47.js} | 2 +- assets/js/{93f0793d.6124f0f5.js => 93f0793d.85e68909.js} | 2 +- assets/js/{95451dd5.835e657a.js => 95451dd5.33c381d8.js} | 2 +- assets/js/{9798ce17.6fa9dc65.js => 9798ce17.e1fb0582.js} | 2 +- assets/js/{9903dc99.9890ed25.js => 9903dc99.bb878380.js} | 2 +- assets/js/{9a2fa73a.51eb0da4.js => 9a2fa73a.12dc0066.js} | 2 +- assets/js/{9bc9e25c.20d72464.js => 9bc9e25c.7061afa3.js} | 2 +- assets/js/{9d48492b.f5c46122.js => 9d48492b.81d03e2c.js} | 2 +- assets/js/{9fc1d339.d405d3dc.js => 9fc1d339.7e549add.js} | 2 +- assets/js/{a05464cd.4238a7a2.js => a05464cd.47ea597c.js} | 2 +- assets/js/{a09c2993.772e7233.js => a09c2993.d972cbed.js} | 2 +- assets/js/{a389e28e.8bbbdfbe.js => a389e28e.e131bc17.js} | 2 +- assets/js/{a74b641e.d049d3bb.js => a74b641e.404326d1.js} | 2 +- assets/js/{a7d04da7.45f1b573.js => a7d04da7.47c02d9c.js} | 2 +- assets/js/{a7d61b99.9132e074.js => a7d61b99.79f394dc.js} | 2 +- assets/js/{a89007e0.51f0f4ba.js => a89007e0.45567ab5.js} | 2 +- assets/js/{a9789633.3695f7b7.js => a9789633.2646ab56.js} | 2 +- assets/js/{aa079c8b.48981374.js => aa079c8b.4e66da68.js} | 2 +- assets/js/{aad144a3.cbf9dddd.js => aad144a3.53dc42a9.js} | 2 +- assets/js/{adb64ee2.54b28c69.js => adb64ee2.fb66d77e.js} | 2 +- assets/js/{af572879.bedeb5d5.js => af572879.adcff637.js} | 2 +- assets/js/{afba4106.8df3da62.js => afba4106.ec53a510.js} | 2 +- assets/js/{b2161dc5.064b0aae.js => b2161dc5.0cf38d68.js} | 2 +- assets/js/{b4c5bdfe.9fd975b2.js => b4c5bdfe.37177a4e.js} | 2 +- assets/js/{b647df5a.78f5ac30.js => b647df5a.8d93ea2d.js} | 2 +- assets/js/{b83f237d.ba457084.js => b83f237d.91007f58.js} | 2 +- assets/js/{c00c612c.7f1dbdf6.js => c00c612c.254ef7de.js} | 2 +- assets/js/{c1bdbc58.e533eca0.js => c1bdbc58.3a3a3063.js} | 2 +- assets/js/{c44fa306.82a946e1.js => c44fa306.5f7eef80.js} | 2 +- assets/js/{c49413db.d6fe2931.js => c49413db.c88643d7.js} | 2 +- assets/js/{c4ba122c.f6bf1010.js => c4ba122c.9e702f3f.js} | 2 +- assets/js/{c62dfc48.9d3288c5.js => c62dfc48.ba9467b6.js} | 2 +- assets/js/{c7279284.62c16e11.js => c7279284.103b5299.js} | 2 +- assets/js/{cd9c57cb.f18ff039.js => cd9c57cb.c07ee18c.js} | 2 +- assets/js/{d069ae84.bb7d5158.js => d069ae84.33ea3362.js} | 2 +- assets/js/{d19b9e8a.c33f1e15.js => d19b9e8a.d05ddab0.js} | 2 +- assets/js/{d1b207fe.fceb188a.js => d1b207fe.13dbffca.js} | 2 +- assets/js/{d2df711a.66ad81da.js => d2df711a.3e107f88.js} | 2 +- assets/js/{d4836a8e.17eb21f8.js => d4836a8e.6b69984d.js} | 2 +- assets/js/{d720bb60.888da372.js => d720bb60.aca53dd8.js} | 2 +- assets/js/{d9330f66.d535eb47.js => d9330f66.744ee173.js} | 2 +- assets/js/{d957c22b.d6b28210.js => d957c22b.64f7c7b1.js} | 2 +- assets/js/{daab97c5.c167dff9.js => daab97c5.d477defc.js} | 2 +- assets/js/{dd1da75d.74cd874d.js => dd1da75d.e033d751.js} | 2 +- assets/js/{dd8b0175.07ca87b2.js => dd8b0175.5351dda3.js} | 2 +- assets/js/{df70a34a.60324cb3.js => df70a34a.7642ef38.js} | 2 +- assets/js/{dff5aaca.94aeea7f.js => dff5aaca.fb40e867.js} | 2 +- assets/js/{e0a3f9c8.98b3dac6.js => e0a3f9c8.bf5c3ab8.js} | 2 +- assets/js/{e1715838.7a153e54.js => e1715838.92203a89.js} | 2 +- assets/js/{e36b815f.e002062b.js => e36b815f.b35306b9.js} | 2 +- assets/js/{e59053ae.26a7e745.js => e59053ae.9bd0f09b.js} | 2 +- assets/js/{e5a27df7.bc92c8bf.js => e5a27df7.c9003a0a.js} | 2 +- assets/js/{ea131d77.a4b2090c.js => ea131d77.c0c510bb.js} | 2 +- assets/js/{eabdbf07.009ef5c0.js => eabdbf07.2f27c156.js} | 2 +- assets/js/{eae657ee.caa9f575.js => eae657ee.1c21e237.js} | 2 +- assets/js/{ebf39289.b8eceae1.js => ebf39289.b15fa45c.js} | 2 +- assets/js/{ec1d9510.377fcbbf.js => ec1d9510.70209a88.js} | 2 +- assets/js/{ec7d5e88.26a6323d.js => ec7d5e88.daa1c2ac.js} | 2 +- assets/js/{ecfacc56.ed59e783.js => ecfacc56.01e1da62.js} | 2 +- assets/js/{ef2f3ccd.fc2c0c28.js => ef2f3ccd.22f4e330.js} | 2 +- assets/js/{f0447160.495a0e15.js => f0447160.d860ed84.js} | 2 +- assets/js/{f14ecac0.ff667a3a.js => f14ecac0.7fec1ae2.js} | 2 +- assets/js/{f3212b1e.45d768dd.js => f3212b1e.bbe450a9.js} | 2 +- assets/js/{f43def45.cc44cc07.js => f43def45.cb040f23.js} | 2 +- assets/js/{f546eb96.492aa249.js => f546eb96.188c5f73.js} | 2 +- assets/js/{f97daad0.a4221f1c.js => f97daad0.1f5f98a9.js} | 2 +- assets/js/{fa9f2ace.3f1e4b60.js => fa9f2ace.de1f4508.js} | 2 +- assets/js/{fbd32610.23729e9c.js => fbd32610.0b4021a0.js} | 2 +- assets/js/{fc80686b.a5c654e1.js => fc80686b.24aab6b9.js} | 2 +- assets/js/{fea96f18.5ecf1399.js => fea96f18.b7b58f60.js} | 2 +- assets/js/{main.9babecea.js => main.778ecb2a.js} | 4 ++-- ...9babecea.js.LICENSE.txt => main.778ecb2a.js.LICENSE.txt} | 0 .../{runtime~main.ef70520a.js => runtime~main.70127420.js} | 2 +- docs/10.x/getting-started/installation/index.html | 6 +++--- docs/10.x/getting-started/options/index.html | 6 +++--- docs/10.x/getting-started/presets/index.html | 6 +++--- docs/10.x/getting-started/test-environment/index.html | 6 +++--- docs/10.x/guides/absolute-imports/index.html | 6 +++--- docs/10.x/guides/angular-ivy/index.html | 6 +++--- docs/10.x/guides/esm-support/index.html | 6 +++--- docs/10.x/guides/jsdom-version/index.html | 6 +++--- docs/10.x/guides/troubleshooting/index.html | 6 +++--- docs/10.x/guides/using-with-babel/index.html | 6 +++--- docs/10.x/index.html | 6 +++--- docs/10.x/processing/index.html | 6 +++--- docs/11.0/getting-started/installation/index.html | 6 +++--- docs/11.0/getting-started/options/index.html | 6 +++--- docs/11.0/getting-started/presets/index.html | 6 +++--- docs/11.0/getting-started/test-environment/index.html | 6 +++--- docs/11.0/guides/absolute-imports/index.html | 6 +++--- docs/11.0/guides/angular-13+/index.html | 6 +++--- docs/11.0/guides/angular-ivy/index.html | 6 +++--- docs/11.0/guides/esm-support/index.html | 6 +++--- docs/11.0/guides/jsdom-version/index.html | 6 +++--- docs/11.0/guides/troubleshooting/index.html | 6 +++--- docs/11.0/guides/using-with-babel/index.html | 6 +++--- docs/11.0/index.html | 6 +++--- docs/11.0/processing/index.html | 6 +++--- docs/11.1/getting-started/installation/index.html | 6 +++--- docs/11.1/getting-started/options/index.html | 6 +++--- docs/11.1/getting-started/presets/index.html | 6 +++--- docs/11.1/getting-started/test-environment/index.html | 6 +++--- docs/11.1/guides/absolute-imports/index.html | 6 +++--- docs/11.1/guides/angular-13+/index.html | 6 +++--- docs/11.1/guides/angular-ivy/index.html | 6 +++--- docs/11.1/guides/esm-support/index.html | 6 +++--- docs/11.1/guides/jsdom-version/index.html | 6 +++--- docs/11.1/guides/troubleshooting/index.html | 6 +++--- docs/11.1/guides/using-with-babel/index.html | 6 +++--- docs/11.1/index.html | 6 +++--- docs/11.1/processing/index.html | 6 +++--- docs/12.0/getting-started/installation/index.html | 6 +++--- docs/12.0/getting-started/options/index.html | 6 +++--- docs/12.0/getting-started/presets/index.html | 6 +++--- docs/12.0/getting-started/test-environment/index.html | 6 +++--- docs/12.0/guides/absolute-imports/index.html | 6 +++--- docs/12.0/guides/angular-13+/index.html | 6 +++--- docs/12.0/guides/angular-ivy/index.html | 6 +++--- docs/12.0/guides/esm-support/index.html | 6 +++--- docs/12.0/guides/jsdom-version/index.html | 6 +++--- docs/12.0/guides/troubleshooting/index.html | 6 +++--- docs/12.0/guides/using-with-babel/index.html | 6 +++--- docs/12.0/index.html | 6 +++--- docs/12.0/processing/index.html | 6 +++--- docs/13.0/getting-started/installation/index.html | 6 +++--- docs/13.0/getting-started/options/index.html | 6 +++--- docs/13.0/getting-started/presets/index.html | 6 +++--- docs/13.0/getting-started/test-environment/index.html | 6 +++--- docs/13.0/guides/absolute-imports/index.html | 6 +++--- docs/13.0/guides/angular-13+/index.html | 6 +++--- docs/13.0/guides/angular-ivy/index.html | 6 +++--- docs/13.0/guides/esm-support/index.html | 6 +++--- docs/13.0/guides/jsdom-version/index.html | 6 +++--- docs/13.0/guides/troubleshooting/index.html | 6 +++--- docs/13.0/guides/using-with-babel/index.html | 6 +++--- docs/13.0/index.html | 6 +++--- docs/13.0/processing/index.html | 6 +++--- docs/14.0/getting-started/installation/index.html | 6 +++--- docs/14.0/getting-started/options/index.html | 6 +++--- docs/14.0/getting-started/presets/index.html | 6 +++--- docs/14.0/getting-started/test-environment/index.html | 6 +++--- docs/14.0/guides/absolute-imports/index.html | 6 +++--- docs/14.0/guides/angular-13+/index.html | 6 +++--- docs/14.0/guides/angular-ivy/index.html | 6 +++--- docs/14.0/guides/esm-support/index.html | 6 +++--- docs/14.0/guides/jsdom-version/index.html | 6 +++--- docs/14.0/guides/troubleshooting/index.html | 6 +++--- docs/14.0/guides/using-with-babel/index.html | 6 +++--- docs/14.0/index.html | 6 +++--- docs/14.0/processing/index.html | 6 +++--- docs/14.2/getting-started/installation/index.html | 6 +++--- docs/14.2/getting-started/options/index.html | 6 +++--- docs/14.2/getting-started/presets/index.html | 6 +++--- docs/14.2/getting-started/test-environment/index.html | 6 +++--- docs/14.2/guides/absolute-imports/index.html | 6 +++--- docs/14.2/guides/angular-13+/index.html | 6 +++--- docs/14.2/guides/angular-ivy/index.html | 6 +++--- docs/14.2/guides/esm-support/index.html | 6 +++--- docs/14.2/guides/jsdom-version/index.html | 6 +++--- docs/14.2/guides/snapshot-testing/index.html | 6 +++--- docs/14.2/guides/troubleshooting/index.html | 6 +++--- docs/14.2/guides/using-with-babel/index.html | 6 +++--- docs/14.2/index.html | 6 +++--- docs/14.2/processing/index.html | 6 +++--- docs/14.3/getting-started/installation/index.html | 6 +++--- docs/14.3/getting-started/options/index.html | 6 +++--- docs/14.3/getting-started/presets/index.html | 6 +++--- docs/14.3/getting-started/test-environment/index.html | 6 +++--- docs/14.3/guides/absolute-imports/index.html | 6 +++--- docs/14.3/guides/angular-13+/index.html | 6 +++--- docs/14.3/guides/angular-ivy/index.html | 6 +++--- docs/14.3/guides/esm-support/index.html | 6 +++--- docs/14.3/guides/jsdom-version/index.html | 6 +++--- docs/14.3/guides/snapshot-testing/index.html | 6 +++--- docs/14.3/guides/troubleshooting/index.html | 6 +++--- docs/14.3/guides/using-with-babel/index.html | 6 +++--- docs/14.3/index.html | 6 +++--- docs/14.3/processing/index.html | 6 +++--- docs/8.x/getting-started/installation/index.html | 6 +++--- docs/8.x/getting-started/options/index.html | 6 +++--- docs/8.x/getting-started/presets/index.html | 6 +++--- docs/8.x/getting-started/test-environment/index.html | 6 +++--- docs/8.x/guides/absolute-imports/index.html | 6 +++--- docs/8.x/guides/angular-ivy/index.html | 6 +++--- docs/8.x/guides/esm-support/index.html | 6 +++--- docs/8.x/guides/jsdom-version/index.html | 6 +++--- docs/8.x/guides/troubleshooting/index.html | 6 +++--- docs/8.x/guides/using-with-babel/index.html | 6 +++--- docs/8.x/index.html | 6 +++--- docs/8.x/processing/index.html | 6 +++--- docs/9.x/getting-started/installation/index.html | 6 +++--- docs/9.x/getting-started/options/index.html | 6 +++--- docs/9.x/getting-started/presets/index.html | 6 +++--- docs/9.x/getting-started/test-environment/index.html | 6 +++--- docs/9.x/guides/absolute-imports/index.html | 6 +++--- docs/9.x/guides/angular-ivy/index.html | 6 +++--- docs/9.x/guides/esm-support/index.html | 6 +++--- docs/9.x/guides/jsdom-version/index.html | 6 +++--- docs/9.x/guides/troubleshooting/index.html | 6 +++--- docs/9.x/guides/using-with-babel/index.html | 6 +++--- docs/9.x/index.html | 6 +++--- docs/9.x/processing/index.html | 6 +++--- docs/getting-started/installation/index.html | 6 +++--- docs/getting-started/options/index.html | 6 +++--- docs/getting-started/presets/index.html | 6 +++--- docs/getting-started/test-environment/index.html | 6 +++--- docs/guides/absolute-imports/index.html | 6 +++--- docs/guides/angular-13+/index.html | 6 +++--- docs/guides/angular-ivy/index.html | 6 +++--- docs/guides/esm-support/index.html | 6 +++--- docs/guides/jsdom-version/index.html | 6 +++--- docs/guides/snapshot-testing/index.html | 6 +++--- docs/guides/troubleshooting/index.html | 6 +++--- docs/guides/using-with-babel/index.html | 6 +++--- docs/index.html | 6 +++--- docs/next/getting-started/installation/index.html | 6 +++--- docs/next/getting-started/options/index.html | 6 +++--- docs/next/getting-started/presets/index.html | 6 +++--- docs/next/getting-started/test-environment/index.html | 6 +++--- docs/next/guides/absolute-imports/index.html | 6 +++--- docs/next/guides/angular-13+/index.html | 6 +++--- docs/next/guides/angular-ivy/index.html | 4 ++-- docs/next/guides/esm-support/index.html | 6 +++--- docs/next/guides/jsdom-version/index.html | 6 +++--- docs/next/guides/snapshot-testing/index.html | 6 +++--- docs/next/guides/troubleshooting/index.html | 6 +++--- docs/next/guides/using-with-babel/index.html | 6 +++--- docs/next/index.html | 6 +++--- docs/next/processing/index.html | 6 +++--- docs/processing/index.html | 6 +++--- index.html | 4 ++-- search/index.html | 4 ++-- sw.js | 2 +- versions/index.html | 4 ++-- 321 files changed, 638 insertions(+), 638 deletions(-) rename assets/js/{029bedf1.ad44e546.js => 029bedf1.554287b3.js} (98%) rename assets/js/{02a1e558.9d745bd3.js => 02a1e558.e45291e7.js} (99%) rename assets/js/{03be7dae.29b34983.js => 03be7dae.35a7d248.js} (99%) rename assets/js/{04ae74d1.4923c42d.js => 04ae74d1.9296140c.js} (99%) rename assets/js/{04b3fc6c.8fb1477b.js => 04b3fc6c.7bf3b6a0.js} (98%) rename assets/js/{05916282.7d5215e3.js => 05916282.86477b8a.js} (97%) rename assets/js/{08804573.70599929.js => 08804573.0a6b1e32.js} (99%) rename assets/js/{097bb47a.0f15acaa.js => 097bb47a.9367242a.js} (96%) rename assets/js/{09df063d.a3ab4269.js => 09df063d.4ece039c.js} (99%) rename assets/js/{0d71a3f1.f31ccf7c.js => 0d71a3f1.364e7c31.js} (97%) rename assets/js/{0dc350cc.36b27890.js => 0dc350cc.36d1137f.js} (99%) rename assets/js/{0e35f71d.d0361ccc.js => 0e35f71d.97d6f6f8.js} (99%) rename assets/js/{13973f06.45aac155.js => 13973f06.27bdaec1.js} (96%) rename assets/js/{1438ea8f.ce71650a.js => 1438ea8f.66445ba5.js} (99%) rename assets/js/{151633a5.e7adf69f.js => 151633a5.2f5dcee4.js} (95%) rename assets/js/{15a051c9.210d9832.js => 15a051c9.537a8a45.js} (99%) rename assets/js/{164a8de7.1e70e494.js => 164a8de7.2747ccd8.js} (99%) rename assets/js/{1a421168.9944178b.js => 1a421168.7af4f1c4.js} (99%) rename assets/js/{1a5572f6.5c0ff7de.js => 1a5572f6.dbaaad53.js} (99%) rename assets/js/{1d8e39f8.c52cb48c.js => 1d8e39f8.fc0b27b1.js} (99%) rename assets/js/{1e388ac9.37808e16.js => 1e388ac9.e7f6548a.js} (99%) rename assets/js/{203fc93e.f300ab1d.js => 203fc93e.c5c75614.js} (99%) rename assets/js/{22e4d634.4a12f9b4.js => 22e4d634.034294ba.js} (99%) rename assets/js/{252e2b80.8cfae68c.js => 252e2b80.fd6e1ea1.js} (99%) rename assets/js/{26cb42b7.1068b9ef.js => 26cb42b7.842bebec.js} (99%) rename assets/js/{27299a3b.2461f1fe.js => 27299a3b.02f489b3.js} (99%) rename assets/js/{27af8d7b.523d46b2.js => 27af8d7b.5e56336a.js} (98%) rename assets/js/{29d26392.9bb856ef.js => 29d26392.4f77932f.js} (98%) rename assets/js/{2a474b18.6b2cba82.js => 2a474b18.3610569a.js} (99%) rename assets/js/{2ab18ce5.0814d542.js => 2ab18ce5.be767bbf.js} (95%) rename assets/js/{2ae17008.46dc7a20.js => 2ae17008.59fdc952.js} (96%) rename assets/js/{2e81e74f.1e0024b5.js => 2e81e74f.5b257d2f.js} (99%) rename assets/js/{30388853.e2dc0b0e.js => 30388853.97619423.js} (96%) rename assets/js/{327b6d8e.9c05d38c.js => 327b6d8e.af110dce.js} (95%) rename assets/js/{33a5adb4.98b17df4.js => 33a5adb4.5afaf9fd.js} (99%) rename assets/js/{357d33d4.f720e597.js => 357d33d4.e911d2a0.js} (98%) rename assets/js/{388d3430.a0a277d9.js => 388d3430.3969a841.js} (99%) rename assets/js/{3b270bcb.7d7a7941.js => 3b270bcb.fa1a55fa.js} (99%) rename assets/js/{3c7caf67.b4a29cf8.js => 3c7caf67.36f2011d.js} (99%) rename assets/js/{407f8801.9d29b948.js => 407f8801.24e1cce2.js} (99%) rename assets/js/{433cefd8.2379da9b.js => 433cefd8.6c3f6b48.js} (99%) rename assets/js/{4351d34b.26e8d588.js => 4351d34b.2f4c746e.js} (99%) rename assets/js/{44821296.4c55fc38.js => 44821296.4c3af857.js} (99%) rename assets/js/{44b4d73b.acbf1742.js => 44b4d73b.448b1aaa.js} (99%) rename assets/js/{47c825a2.f431be4d.js => 47c825a2.362f7626.js} (99%) rename assets/js/{47cccd8d.5f1e4b54.js => 47cccd8d.3b57cb41.js} (97%) rename assets/js/{48dd39e2.d6275f21.js => 48dd39e2.82b1aefa.js} (99%) rename assets/js/{4941928a.34cbbeda.js => 4941928a.013d282d.js} (99%) rename assets/js/{494f4f5e.52f1ab49.js => 494f4f5e.ce842b6a.js} (97%) rename assets/js/{4b3f866b.8736ed0c.js => 4b3f866b.7a9444da.js} (99%) rename assets/js/{4e0c07c5.0409bb11.js => 4e0c07c5.a948bc56.js} (99%) rename assets/js/{51d67042.2ebbc019.js => 51d67042.a84f2c5b.js} (98%) rename assets/js/{5253afba.cfab21ee.js => 5253afba.462c5ed9.js} (99%) rename assets/js/{54071611.27089a6f.js => 54071611.a6c91af3.js} (99%) rename assets/js/{5465ebbc.fa916b29.js => 5465ebbc.73acce35.js} (97%) rename assets/js/{54f44165.06f9f558.js => 54f44165.21d177ad.js} (99%) rename assets/js/{5635425a.7600f61a.js => 5635425a.427f6e85.js} (98%) rename assets/js/{56acf0ae.b1aae639.js => 56acf0ae.fbebf62a.js} (99%) rename assets/js/{5ae6b2db.fc04ae9b.js => 5ae6b2db.6c6726af.js} (95%) rename assets/js/{5b125e0e.4771f7c6.js => 5b125e0e.2977f500.js} (99%) rename assets/js/{5b1cb890.88584ec3.js => 5b1cb890.5f66cfab.js} (99%) rename assets/js/{5ee9d842.2e2a38d3.js => 5ee9d842.8dd98d40.js} (97%) rename assets/js/{5f85402d.ebaeebda.js => 5f85402d.2b7e7ca6.js} (99%) rename assets/js/{6059e070.5a47e8ed.js => 6059e070.0c57532e.js} (99%) rename assets/js/{6266f1ba.932a3bf3.js => 6266f1ba.64ac2ef8.js} (99%) rename assets/js/{63150b11.8d44a0a9.js => 63150b11.522ddf33.js} (99%) rename assets/js/{651850eb.d532c08a.js => 651850eb.71bda44e.js} (97%) rename assets/js/{6608151e.61eb264a.js => 6608151e.a13408cb.js} (95%) rename assets/js/{68240572.486ac810.js => 68240572.34025962.js} (99%) rename assets/js/{68e3f1d5.f3f2f2dc.js => 68e3f1d5.d6f523ad.js} (99%) rename assets/js/{6916680a.d18ad14c.js => 6916680a.fed0f3c5.js} (99%) rename assets/js/{6a6dcee7.77005447.js => 6a6dcee7.e60237b9.js} (98%) rename assets/js/{6d1ddfa7.c63582d4.js => 6d1ddfa7.6bf79768.js} (97%) rename assets/js/{6f809103.c7030008.js => 6f809103.c4db68d4.js} (99%) rename assets/js/{710ad8a9.c8e222ac.js => 710ad8a9.721bff68.js} (99%) rename assets/js/{72f058d3.8f9a80ce.js => 72f058d3.71ed472c.js} (99%) rename assets/js/{732c3ce9.be04e461.js => 732c3ce9.dcdef48d.js} (98%) rename assets/js/{79ea3e73.771f973a.js => 79ea3e73.45844d09.js} (98%) rename assets/js/{7aeeadd4.c321de8b.js => 7aeeadd4.dcd0791b.js} (97%) rename assets/js/{80b4c599.8a5f4069.js => 80b4c599.bc3556b9.js} (98%) rename assets/js/{85e14910.f957004d.js => 85e14910.0a8f4b07.js} (99%) rename assets/js/{8665e647.da6859ba.js => 8665e647.5fae0771.js} (99%) rename assets/js/{8afa1348.5c957e34.js => 8afa1348.76071903.js} (96%) rename assets/js/{8b263414.111f919e.js => 8b263414.c5fd847b.js} (97%) rename assets/js/{8f3baa16.c7c8a87a.js => 8f3baa16.1991da9e.js} (99%) rename assets/js/{915eea02.c73dab5e.js => 915eea02.02787d2d.js} (97%) rename assets/js/{9251a350.f9f248b4.js => 9251a350.3796dd47.js} (98%) rename assets/js/{93f0793d.6124f0f5.js => 93f0793d.85e68909.js} (98%) rename assets/js/{95451dd5.835e657a.js => 95451dd5.33c381d8.js} (96%) rename assets/js/{9798ce17.6fa9dc65.js => 9798ce17.e1fb0582.js} (99%) rename assets/js/{9903dc99.9890ed25.js => 9903dc99.bb878380.js} (97%) rename assets/js/{9a2fa73a.51eb0da4.js => 9a2fa73a.12dc0066.js} (99%) rename assets/js/{9bc9e25c.20d72464.js => 9bc9e25c.7061afa3.js} (95%) rename assets/js/{9d48492b.f5c46122.js => 9d48492b.81d03e2c.js} (98%) rename assets/js/{9fc1d339.d405d3dc.js => 9fc1d339.7e549add.js} (99%) rename assets/js/{a05464cd.4238a7a2.js => a05464cd.47ea597c.js} (99%) rename assets/js/{a09c2993.772e7233.js => a09c2993.d972cbed.js} (97%) rename assets/js/{a389e28e.8bbbdfbe.js => a389e28e.e131bc17.js} (99%) rename assets/js/{a74b641e.d049d3bb.js => a74b641e.404326d1.js} (97%) rename assets/js/{a7d04da7.45f1b573.js => a7d04da7.47c02d9c.js} (99%) rename assets/js/{a7d61b99.9132e074.js => a7d61b99.79f394dc.js} (99%) rename assets/js/{a89007e0.51f0f4ba.js => a89007e0.45567ab5.js} (99%) rename assets/js/{a9789633.3695f7b7.js => a9789633.2646ab56.js} (99%) rename assets/js/{aa079c8b.48981374.js => aa079c8b.4e66da68.js} (99%) rename assets/js/{aad144a3.cbf9dddd.js => aad144a3.53dc42a9.js} (99%) rename assets/js/{adb64ee2.54b28c69.js => adb64ee2.fb66d77e.js} (96%) rename assets/js/{af572879.bedeb5d5.js => af572879.adcff637.js} (99%) rename assets/js/{afba4106.8df3da62.js => afba4106.ec53a510.js} (97%) rename assets/js/{b2161dc5.064b0aae.js => b2161dc5.0cf38d68.js} (96%) rename assets/js/{b4c5bdfe.9fd975b2.js => b4c5bdfe.37177a4e.js} (96%) rename assets/js/{b647df5a.78f5ac30.js => b647df5a.8d93ea2d.js} (98%) rename assets/js/{b83f237d.ba457084.js => b83f237d.91007f58.js} (97%) rename assets/js/{c00c612c.7f1dbdf6.js => c00c612c.254ef7de.js} (97%) rename assets/js/{c1bdbc58.e533eca0.js => c1bdbc58.3a3a3063.js} (95%) rename assets/js/{c44fa306.82a946e1.js => c44fa306.5f7eef80.js} (98%) rename assets/js/{c49413db.d6fe2931.js => c49413db.c88643d7.js} (98%) rename assets/js/{c4ba122c.f6bf1010.js => c4ba122c.9e702f3f.js} (99%) rename assets/js/{c62dfc48.9d3288c5.js => c62dfc48.ba9467b6.js} (99%) rename assets/js/{c7279284.62c16e11.js => c7279284.103b5299.js} (99%) rename assets/js/{cd9c57cb.f18ff039.js => cd9c57cb.c07ee18c.js} (97%) rename assets/js/{d069ae84.bb7d5158.js => d069ae84.33ea3362.js} (99%) rename assets/js/{d19b9e8a.c33f1e15.js => d19b9e8a.d05ddab0.js} (97%) rename assets/js/{d1b207fe.fceb188a.js => d1b207fe.13dbffca.js} (99%) rename assets/js/{d2df711a.66ad81da.js => d2df711a.3e107f88.js} (97%) rename assets/js/{d4836a8e.17eb21f8.js => d4836a8e.6b69984d.js} (97%) rename assets/js/{d720bb60.888da372.js => d720bb60.aca53dd8.js} (97%) rename assets/js/{d9330f66.d535eb47.js => d9330f66.744ee173.js} (99%) rename assets/js/{d957c22b.d6b28210.js => d957c22b.64f7c7b1.js} (99%) rename assets/js/{daab97c5.c167dff9.js => daab97c5.d477defc.js} (96%) rename assets/js/{dd1da75d.74cd874d.js => dd1da75d.e033d751.js} (99%) rename assets/js/{dd8b0175.07ca87b2.js => dd8b0175.5351dda3.js} (99%) rename assets/js/{df70a34a.60324cb3.js => df70a34a.7642ef38.js} (98%) rename assets/js/{dff5aaca.94aeea7f.js => dff5aaca.fb40e867.js} (99%) rename assets/js/{e0a3f9c8.98b3dac6.js => e0a3f9c8.bf5c3ab8.js} (98%) rename assets/js/{e1715838.7a153e54.js => e1715838.92203a89.js} (97%) rename assets/js/{e36b815f.e002062b.js => e36b815f.b35306b9.js} (97%) rename assets/js/{e59053ae.26a7e745.js => e59053ae.9bd0f09b.js} (99%) rename assets/js/{e5a27df7.bc92c8bf.js => e5a27df7.c9003a0a.js} (99%) rename assets/js/{ea131d77.a4b2090c.js => ea131d77.c0c510bb.js} (97%) rename assets/js/{eabdbf07.009ef5c0.js => eabdbf07.2f27c156.js} (96%) rename assets/js/{eae657ee.caa9f575.js => eae657ee.1c21e237.js} (99%) rename assets/js/{ebf39289.b8eceae1.js => ebf39289.b15fa45c.js} (99%) rename assets/js/{ec1d9510.377fcbbf.js => ec1d9510.70209a88.js} (99%) rename assets/js/{ec7d5e88.26a6323d.js => ec7d5e88.daa1c2ac.js} (99%) rename assets/js/{ecfacc56.ed59e783.js => ecfacc56.01e1da62.js} (96%) rename assets/js/{ef2f3ccd.fc2c0c28.js => ef2f3ccd.22f4e330.js} (99%) rename assets/js/{f0447160.495a0e15.js => f0447160.d860ed84.js} (99%) rename assets/js/{f14ecac0.ff667a3a.js => f14ecac0.7fec1ae2.js} (95%) rename assets/js/{f3212b1e.45d768dd.js => f3212b1e.bbe450a9.js} (99%) rename assets/js/{f43def45.cc44cc07.js => f43def45.cb040f23.js} (99%) rename assets/js/{f546eb96.492aa249.js => f546eb96.188c5f73.js} (96%) rename assets/js/{f97daad0.a4221f1c.js => f97daad0.1f5f98a9.js} (98%) rename assets/js/{fa9f2ace.3f1e4b60.js => fa9f2ace.de1f4508.js} (98%) rename assets/js/{fbd32610.23729e9c.js => fbd32610.0b4021a0.js} (99%) rename assets/js/{fc80686b.a5c654e1.js => fc80686b.24aab6b9.js} (98%) rename assets/js/{fea96f18.5ecf1399.js => fea96f18.b7b58f60.js} (99%) rename assets/js/{main.9babecea.js => main.778ecb2a.js} (96%) rename assets/js/{main.9babecea.js.LICENSE.txt => main.778ecb2a.js.LICENSE.txt} (100%) rename assets/js/{runtime~main.ef70520a.js => runtime~main.70127420.js} (59%) diff --git a/404.html b/404.html index 26173420eb..6d3de7a4f3 100644 --- a/404.html +++ b/404.html @@ -14,8 +14,8 @@ - - + +
We could not find what you were looking for.
Please contact the owner of the site that linked you to the original URL and let them know their link is broken.
ChangeDetectionStrategy.OnPush
is used",id:"input-bindings-are-not-reflected-into-fixture-when-changedetectionstrategyonpush-is-used",level:3},{value:"The animation trigger "transformMenu" has failed",id:"the-animation-trigger-transformmenu-has-failed",level:3},{value:"Unexpected token [import|export|other]",id:"unexpected-token-importexportother",level:3},{value:"Allow vendor libraries like jQuery, etc...",id:"allow-vendor-libraries-like-jquery-etc",level:3},{value:"Coverage fail but tests pass",id:"coverage-fail-but-tests-pass",level:3},{value:"Resolver needed for some javascript library or nested dependencies",id:"resolver-needed-for-some-javascript-library-or-nested-dependencies",level:3},{value:"Javascript library",id:"javascript-library",level:4},{value:"Nested dependency (node_modules
package within another package node_nodules
)",id:"nested-dependency-node_modules-package-within-another-package-node_nodules",level:4},{value:"Resolution",id:"resolution",level:4},{value:"Inject dependencies with TypeScript interface or exported namespace",id:"inject-dependencies-with-typescript-interface-or-exported-namespace",level:3}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["You can check Jest ",(0,r.jsx)(n.a,{href:"https://jestjs.io/docs/en/troubleshooting",children:"troubleshooting guide"})]}),"\n",(0,r.jsx)(n.h2,{id:"common-issues",children:"Common issues"}),"\n",(0,r.jsxs)(n.p,{children:["Problems may arise if you're using custom builds (this preset is tailored for ",(0,r.jsx)(n.code,{children:"angular-cli"})," as firstly priority). Please be advised that every entry in default configuration may be overridden to best suite your app's needs."]}),"\n",(0,r.jsx)(n.h3,{id:"cant-resolve-all-parameters-for-someclass",children:"Can't resolve all parameters for SomeClass(?)"}),"\n",(0,r.jsxs)(n.p,{children:["With Angular 8 and higher, a ",(0,r.jsx)(n.a,{href:"https://github.com/thymikee/jest-preset-angular/issues/288",children:"change to the way the Angular CLI works"})," may be causing your metadata to be lost. You can update your ",(0,r.jsx)(n.code,{children:"tsconfig.spec.json"})," to include the ",(0,r.jsx)(n.code,{children:"emitDecoratorMetadata"})," compiler option:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",metastring:'title="tsconfig.spec.json"',children:'{\n "compilerOptions": {\n "emitDecoratorMetadata": true\n }\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["In general, this is related to ",(0,r.jsx)(n.code,{children:"Angular"}),"'s reflection and also depends on a reflection library, as e. g. included in ",(0,r.jsx)(n.code,{children:"core-js"}),". We use our own minimal reflection that satisfy ",(0,r.jsx)(n.code,{children:"Angular"}),"'s current requirements, but in case these change, you can install ",(0,r.jsx)(n.code,{children:"core-js"})," and import the reflection library in your ",(0,r.jsx)(n.code,{children:"setup-jest.ts"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="setup-jest.ts"',children:"import 'core-js/es/reflect';\nimport 'core-js/proposals/reflect-metadata';\n"})}),"\n",(0,r.jsx)(n.p,{children:"Note that this might also be related to other issues with the dependency injection and parameter type reflection."}),"\n",(0,r.jsxs)(n.h3,{id:"input-bindings-are-not-reflected-into-fixture-when-changedetectionstrategyonpush-is-used",children:["@Input() bindings are not reflected into fixture when ",(0,r.jsx)(n.code,{children:"ChangeDetectionStrategy.OnPush"})," is used"]}),"\n",(0,r.jsxs)(n.p,{children:["This issue is not related to Jest, ",(0,r.jsx)(n.a,{href:"https://github.com/angular/angular/issues/12313",children:"it's a known Angular bug"})]}),"\n",(0,r.jsxs)(n.p,{children:["To mitigate this, you need to wrap your component under test, into some container component with default change detection strategy (",(0,r.jsx)(n.code,{children:"ChangeDetectionStrategy.Default"}),") and pass props through it, or overwrite change detection strategy within ",(0,r.jsx)(n.code,{children:"TestBed"})," setup, if it's not critical for the test."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="some.component.spec.ts"',children:"beforeEach(async(() => {\n TestBed.configureTestingModule({ declarations: [PizzaItemComponent] })\n .overrideComponent(PizzaItemComponent, {\n set: { changeDetection: ChangeDetectionStrategy.Default },\n })\n .compileComponents();\n}));\n"})}),"\n",(0,r.jsx)(n.h3,{id:"the-animation-trigger-transformmenu-has-failed",children:'The animation trigger "transformMenu" has failed'}),"\n",(0,r.jsx)(n.p,{children:"The currently used JSDOM version handles this, but older versions used before v7 of this preset was missing transform property. To patch it for Angular Material, use this workaround."}),"\n",(0,r.jsx)(n.p,{children:"Add this to your global mock file"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="jest-global-mocks.ts"',children:"Object.defineProperty(document.body.style, 'transform', {\n value: () => {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n});\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Reference: ",(0,r.jsx)(n.a,{href:"https://github.com/angular/material2/issues/7101",children:"https://github.com/angular/material2/issues/7101"})]}),"\n",(0,r.jsx)(n.h3,{id:"unexpected-token-importexportother",children:"Unexpected token [import|export|other]"}),"\n",(0,r.jsxs)(n.p,{children:["This means, that a file is not transformed through ",(0,r.jsx)(n.code,{children:"TypeScript"})," compiler, e.g. because it is a ",(0,r.jsx)(n.code,{children:"JS"})," file with ",(0,r.jsx)(n.code,{children:"TS"})," syntax, or\nit is published to npm as uncompiled source files. Here's what you can do. A typical Jest error is like this:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"({\"Object.ChangeDetectionStrategy.OnPush
is used",id:"input-bindings-are-not-reflected-into-fixture-when-changedetectionstrategyonpush-is-used",level:3},{value:"The animation trigger "transformMenu" has failed",id:"the-animation-trigger-transformmenu-has-failed",level:3},{value:"Unexpected token [import|export|other]",id:"unexpected-token-importexportother",level:3},{value:"Allow vendor libraries like jQuery, etc...",id:"allow-vendor-libraries-like-jquery-etc",level:3},{value:"Coverage fail but tests pass",id:"coverage-fail-but-tests-pass",level:3},{value:"Resolver needed for some javascript library or nested dependencies",id:"resolver-needed-for-some-javascript-library-or-nested-dependencies",level:3},{value:"Javascript library",id:"javascript-library",level:4},{value:"Nested dependency (node_modules
package within another package node_nodules
)",id:"nested-dependency-node_modules-package-within-another-package-node_nodules",level:4},{value:"Resolution",id:"resolution",level:4},{value:"Inject dependencies with TypeScript interface or exported namespace",id:"inject-dependencies-with-typescript-interface-or-exported-namespace",level:3}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["You can check Jest ",(0,r.jsx)(n.a,{href:"https://jestjs.io/docs/en/troubleshooting",children:"troubleshooting guide"})]}),"\n",(0,r.jsx)(n.h2,{id:"common-issues",children:"Common issues"}),"\n",(0,r.jsxs)(n.p,{children:["Problems may arise if you're using custom builds (this preset is tailored for ",(0,r.jsx)(n.code,{children:"angular-cli"})," as firstly priority). Please be advised that every entry in default configuration may be overridden to best suite your app's needs."]}),"\n",(0,r.jsx)(n.h3,{id:"cant-resolve-all-parameters-for-someclass",children:"Can't resolve all parameters for SomeClass(?)"}),"\n",(0,r.jsxs)(n.p,{children:["With Angular 8 and higher, a ",(0,r.jsx)(n.a,{href:"https://github.com/thymikee/jest-preset-angular/issues/288",children:"change to the way the Angular CLI works"})," may be causing your metadata to be lost. You can update your ",(0,r.jsx)(n.code,{children:"tsconfig.spec.json"})," to include the ",(0,r.jsx)(n.code,{children:"emitDecoratorMetadata"})," compiler option:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",metastring:'title="tsconfig.spec.json"',children:'{\n "compilerOptions": {\n "emitDecoratorMetadata": true\n }\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["In general, this is related to ",(0,r.jsx)(n.code,{children:"Angular"}),"'s reflection and also depends on a reflection library, as e. g. included in ",(0,r.jsx)(n.code,{children:"core-js"}),". We use our own minimal reflection that satisfy ",(0,r.jsx)(n.code,{children:"Angular"}),"'s current requirements, but in case these change, you can install ",(0,r.jsx)(n.code,{children:"core-js"})," and import the reflection library in your ",(0,r.jsx)(n.code,{children:"setup-jest.ts"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="setup-jest.ts"',children:"import 'core-js/es/reflect';\nimport 'core-js/proposals/reflect-metadata';\n"})}),"\n",(0,r.jsx)(n.p,{children:"Note that this might also be related to other issues with the dependency injection and parameter type reflection."}),"\n",(0,r.jsxs)(n.h3,{id:"input-bindings-are-not-reflected-into-fixture-when-changedetectionstrategyonpush-is-used",children:["@Input() bindings are not reflected into fixture when ",(0,r.jsx)(n.code,{children:"ChangeDetectionStrategy.OnPush"})," is used"]}),"\n",(0,r.jsxs)(n.p,{children:["This issue is not related to Jest, ",(0,r.jsx)(n.a,{href:"https://github.com/angular/angular/issues/12313",children:"it's a known Angular bug"})]}),"\n",(0,r.jsxs)(n.p,{children:["To mitigate this, you need to wrap your component under test, into some container component with default change detection strategy (",(0,r.jsx)(n.code,{children:"ChangeDetectionStrategy.Default"}),") and pass props through it, or overwrite change detection strategy within ",(0,r.jsx)(n.code,{children:"TestBed"})," setup, if it's not critical for the test."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="some.component.spec.ts"',children:"beforeEach(async(() => {\n TestBed.configureTestingModule({ declarations: [PizzaItemComponent] })\n .overrideComponent(PizzaItemComponent, {\n set: { changeDetection: ChangeDetectionStrategy.Default },\n })\n .compileComponents();\n}));\n"})}),"\n",(0,r.jsx)(n.h3,{id:"the-animation-trigger-transformmenu-has-failed",children:'The animation trigger "transformMenu" has failed'}),"\n",(0,r.jsx)(n.p,{children:"The currently used JSDOM version handles this, but older versions used before v7 of this preset was missing transform property. To patch it for Angular Material, use this workaround."}),"\n",(0,r.jsx)(n.p,{children:"Add this to your global mock file"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="jest-global-mocks.ts"',children:"Object.defineProperty(document.body.style, 'transform', {\n value: () => {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n});\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Reference: ",(0,r.jsx)(n.a,{href:"https://github.com/angular/material2/issues/7101",children:"https://github.com/angular/material2/issues/7101"})]}),"\n",(0,r.jsx)(n.h3,{id:"unexpected-token-importexportother",children:"Unexpected token [import|export|other]"}),"\n",(0,r.jsxs)(n.p,{children:["This means, that a file is not transformed through ",(0,r.jsx)(n.code,{children:"TypeScript"})," compiler, e.g. because it is a ",(0,r.jsx)(n.code,{children:"JS"})," file with ",(0,r.jsx)(n.code,{children:"TS"})," syntax, or\nit is published to npm as uncompiled source files. Here's what you can do. A typical Jest error is like this:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"({\"Object.ChangeDetectionStrategy.OnPush
is used",id:"input-bindings-are-not-reflected-into-fixture-when-changedetectionstrategyonpush-is-used",level:3},{value:"The animation trigger "transformMenu" has failed",id:"the-animation-trigger-transformmenu-has-failed",level:3},{value:"Unexpected token [import|export|other]",id:"unexpected-token-importexportother",level:3},{value:"Allow vendor libraries like jQuery, etc...",id:"allow-vendor-libraries-like-jquery-etc",level:3},{value:"Coverage fail but tests pass",id:"coverage-fail-but-tests-pass",level:3},{value:"Resolver needed for some javascript library or nested dependencies",id:"resolver-needed-for-some-javascript-library-or-nested-dependencies",level:3},{value:"Javascript library",id:"javascript-library",level:4},{value:"Nested dependency (node_modules
package within another package node_nodules
)",id:"nested-dependency-node_modules-package-within-another-package-node_nodules",level:4},{value:"Resolution",id:"resolution",level:4},{value:"Inject dependencies with TypeScript interface or exported namespace",id:"inject-dependencies-with-typescript-interface-or-exported-namespace",level:3}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["You can check Jest ",(0,r.jsx)(n.a,{href:"https://jestjs.io/docs/en/troubleshooting",children:"troubleshooting guide"})]}),"\n",(0,r.jsx)(n.h2,{id:"common-issues",children:"Common issues"}),"\n",(0,r.jsxs)(n.p,{children:["Problems may arise if you're using custom builds (this preset is tailored for ",(0,r.jsx)(n.code,{children:"angular-cli"})," as firstly priority). Please be advised that every entry in default configuration may be overridden to best suite your app's needs."]}),"\n",(0,r.jsx)(n.h3,{id:"cant-resolve-all-parameters-for-someclass",children:"Can't resolve all parameters for SomeClass(?)"}),"\n",(0,r.jsxs)(n.p,{children:["With Angular 8 and higher, a ",(0,r.jsx)(n.a,{href:"https://github.com/thymikee/jest-preset-angular/issues/288",children:"change to the way the Angular CLI works"})," may be causing your metadata to be lost. You can update your ",(0,r.jsx)(n.code,{children:"tsconfig.spec.json"})," to include the ",(0,r.jsx)(n.code,{children:"emitDecoratorMetadata"})," compiler option:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",metastring:'title="tsconfig.spec.json"',children:'{\n "compilerOptions": {\n "emitDecoratorMetadata": true\n }\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["In general, this is related to ",(0,r.jsx)(n.code,{children:"Angular"}),"'s reflection and also depends on a reflection library, as e. g. included in ",(0,r.jsx)(n.code,{children:"core-js"}),". We use our own minimal reflection that satisfy ",(0,r.jsx)(n.code,{children:"Angular"}),"'s current requirements, but in case these change, you can install ",(0,r.jsx)(n.code,{children:"core-js"})," and import the reflection library in your ",(0,r.jsx)(n.code,{children:"setup-jest.ts"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="setup-jest.ts"',children:"import 'core-js/es/reflect';\nimport 'core-js/proposals/reflect-metadata';\n"})}),"\n",(0,r.jsx)(n.p,{children:"Note that this might also be related to other issues with the dependency injection and parameter type reflection."}),"\n",(0,r.jsxs)(n.h3,{id:"input-bindings-are-not-reflected-into-fixture-when-changedetectionstrategyonpush-is-used",children:["@Input() bindings are not reflected into fixture when ",(0,r.jsx)(n.code,{children:"ChangeDetectionStrategy.OnPush"})," is used"]}),"\n",(0,r.jsxs)(n.p,{children:["This issue is not related to Jest, ",(0,r.jsx)(n.a,{href:"https://github.com/angular/angular/issues/12313",children:"it's a known Angular bug"})]}),"\n",(0,r.jsxs)(n.p,{children:["To mitigate this, you need to wrap your component under test, into some container component with default change detection strategy (",(0,r.jsx)(n.code,{children:"ChangeDetectionStrategy.Default"}),") and pass props through it, or overwrite change detection strategy within ",(0,r.jsx)(n.code,{children:"TestBed"})," setup, if it's not critical for the test."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="some.component.spec.ts"',children:"beforeEach(async(() => {\n TestBed.configureTestingModule({ declarations: [PizzaItemComponent] })\n .overrideComponent(PizzaItemComponent, {\n set: { changeDetection: ChangeDetectionStrategy.Default },\n })\n .compileComponents();\n}));\n"})}),"\n",(0,r.jsx)(n.h3,{id:"the-animation-trigger-transformmenu-has-failed",children:'The animation trigger "transformMenu" has failed'}),"\n",(0,r.jsx)(n.p,{children:"The currently used JSDOM version handles this, but older versions used before v7 of this preset was missing transform property. To patch it for Angular Material, use this workaround."}),"\n",(0,r.jsx)(n.p,{children:"Add this to your global mock file"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="jest-global-mocks.ts"',children:"Object.defineProperty(document.body.style, 'transform', {\n value: () => {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n});\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Reference: ",(0,r.jsx)(n.a,{href:"https://github.com/angular/material2/issues/7101",children:"https://github.com/angular/material2/issues/7101"})]}),"\n",(0,r.jsx)(n.h3,{id:"unexpected-token-importexportother",children:"Unexpected token [import|export|other]"}),"\n",(0,r.jsxs)(n.p,{children:["This means, that a file is not transformed through ",(0,r.jsx)(n.code,{children:"TypeScript"})," compiler, e.g. because it is a ",(0,r.jsx)(n.code,{children:"JS"})," file with ",(0,r.jsx)(n.code,{children:"TS"})," syntax, or\nit is published to npm as uncompiled source files. Here's what you can do. A typical Jest error is like this:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"({\"Object.ChangeDetectionStrategy.OnPush
is used",id:"input-bindings-are-not-reflected-into-fixture-when-changedetectionstrategyonpush-is-used",level:3},{value:"The animation trigger "transformMenu" has failed",id:"the-animation-trigger-transformmenu-has-failed",level:3},{value:"Unexpected token [import|export|other]",id:"unexpected-token-importexportother",level:3},{value:"Allow vendor libraries like jQuery, etc...",id:"allow-vendor-libraries-like-jquery-etc",level:3},{value:"Coverage fail but tests pass",id:"coverage-fail-but-tests-pass",level:3},{value:"Resolver needed for some javascript library or nested dependencies",id:"resolver-needed-for-some-javascript-library-or-nested-dependencies",level:3},{value:"Javascript library",id:"javascript-library",level:4},{value:"Nested dependency (node_modules
package within another package node_nodules
)",id:"nested-dependency-node_modules-package-within-another-package-node_nodules",level:4},{value:"Resolution",id:"resolution",level:4},{value:"Inject dependencies with TypeScript interface or exported namespace",id:"inject-dependencies-with-typescript-interface-or-exported-namespace",level:3}];function h(e){const n={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",li:"li",p:"p",pre:"pre",ul:"ul",...(0,a.R)(),...e.components};return(0,r.jsxs)(r.Fragment,{children:[(0,r.jsxs)(n.p,{children:["You can check Jest ",(0,r.jsx)(n.a,{href:"https://jestjs.io/docs/en/troubleshooting",children:"troubleshooting guide"})]}),"\n",(0,r.jsx)(n.h2,{id:"common-issues",children:"Common issues"}),"\n",(0,r.jsxs)(n.p,{children:["Problems may arise if you're using custom builds (this preset is tailored for ",(0,r.jsx)(n.code,{children:"angular-cli"})," as firstly priority). Please be advised that every entry in default configuration may be overridden to best suite your app's needs."]}),"\n",(0,r.jsx)(n.h3,{id:"cant-resolve-all-parameters-for-someclass",children:"Can't resolve all parameters for SomeClass(?)"}),"\n",(0,r.jsxs)(n.p,{children:["With Angular 8 and higher, a ",(0,r.jsx)(n.a,{href:"https://github.com/thymikee/jest-preset-angular/issues/288",children:"change to the way the Angular CLI works"})," may be causing your metadata to be lost. You can update your ",(0,r.jsx)(n.code,{children:"tsconfig.spec.json"})," to include the ",(0,r.jsx)(n.code,{children:"emitDecoratorMetadata"})," compiler option:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-json",metastring:'title="tsconfig.spec.json"',children:'{\n "compilerOptions": {\n "emitDecoratorMetadata": true\n }\n}\n'})}),"\n",(0,r.jsxs)(n.p,{children:["In general, this is related to ",(0,r.jsx)(n.code,{children:"Angular"}),"'s reflection and also depends on a reflection library, as e. g. included in ",(0,r.jsx)(n.code,{children:"core-js"}),". We use our own minimal reflection that satisfy ",(0,r.jsx)(n.code,{children:"Angular"}),"'s current requirements, but in case these change, you can install ",(0,r.jsx)(n.code,{children:"core-js"})," and import the reflection library in your ",(0,r.jsx)(n.code,{children:"setup-jest.ts"}),":"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="setup-jest.ts"',children:"import 'core-js/es/reflect';\nimport 'core-js/proposals/reflect-metadata';\n"})}),"\n",(0,r.jsx)(n.p,{children:"Note that this might also be related to other issues with the dependency injection and parameter type reflection."}),"\n",(0,r.jsxs)(n.h3,{id:"input-bindings-are-not-reflected-into-fixture-when-changedetectionstrategyonpush-is-used",children:["@Input() bindings are not reflected into fixture when ",(0,r.jsx)(n.code,{children:"ChangeDetectionStrategy.OnPush"})," is used"]}),"\n",(0,r.jsxs)(n.p,{children:["This issue is not related to Jest, ",(0,r.jsx)(n.a,{href:"https://github.com/angular/angular/issues/12313",children:"it's a known Angular bug"})]}),"\n",(0,r.jsxs)(n.p,{children:["To mitigate this, you need to wrap your component under test, into some container component with default change detection strategy (",(0,r.jsx)(n.code,{children:"ChangeDetectionStrategy.Default"}),") and pass props through it, or overwrite change detection strategy within ",(0,r.jsx)(n.code,{children:"TestBed"})," setup, if it's not critical for the test."]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="some.component.spec.ts"',children:"beforeEach(async(() => {\n TestBed.configureTestingModule({ declarations: [PizzaItemComponent] })\n .overrideComponent(PizzaItemComponent, {\n set: { changeDetection: ChangeDetectionStrategy.Default },\n })\n .compileComponents();\n}));\n"})}),"\n",(0,r.jsx)(n.h3,{id:"the-animation-trigger-transformmenu-has-failed",children:'The animation trigger "transformMenu" has failed'}),"\n",(0,r.jsx)(n.p,{children:"The currently used JSDOM version handles this, but older versions used before v7 of this preset was missing transform property. To patch it for Angular Material, use this workaround."}),"\n",(0,r.jsx)(n.p,{children:"Add this to your global mock file"}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-ts",metastring:'title="jest-global-mocks.ts"',children:"Object.defineProperty(document.body.style, 'transform', {\n value: () => {\n return {\n enumerable: true,\n configurable: true,\n };\n },\n});\n"})}),"\n",(0,r.jsxs)(n.p,{children:["Reference: ",(0,r.jsx)(n.a,{href:"https://github.com/angular/material2/issues/7101",children:"https://github.com/angular/material2/issues/7101"})]}),"\n",(0,r.jsx)(n.h3,{id:"unexpected-token-importexportother",children:"Unexpected token [import|export|other]"}),"\n",(0,r.jsxs)(n.p,{children:["This means, that a file is not transformed through ",(0,r.jsx)(n.code,{children:"TypeScript"})," compiler, e.g. because it is a ",(0,r.jsx)(n.code,{children:"JS"})," file with ",(0,r.jsx)(n.code,{children:"TS"})," syntax, or\nit is published to npm as uncompiled source files. Here's what you can do. A typical Jest error is like this:"]}),"\n",(0,r.jsx)(n.pre,{children:(0,r.jsx)(n.code,{className:"language-shell",children:"({\"Object.setupZoneTestEnv(options)
",id:"setupzonetestenvoptions",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Example:",id:"example",level:4},{value:"setupZonelessTestEnv(options)
",id:"setupzonelesstestenvoptions",level:3},{value:"Parameters",id:"parameters-1",level:4},{value:"Example:",id:"example-1",level:4}];function h(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"In Jest, a test environment defines the sandbox context in which your tests run.\nFor Angular projects, setting up the correct test environment is essential to ensure compatibility with the\nframework-specific features, such as dependency injection and change detection."}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"jest-preset-angular"})," provides utility functions to simplify setting up a Jest test environment tailored for Angular projects.\nThese functions support both ",(0,i.jsx)(t.strong,{children:"zone-based"})," and ",(0,i.jsx)(t.strong,{children:"zoneless"})," environments, catering to different testing needs."]}),"\n",(0,i.jsx)(t.h2,{id:"functions",children:"Functions"}),"\n","\n",(0,i.jsx)(a.A,{toc:u.slice(1)}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"setupzonetestenvoptions",children:(0,i.jsx)(t.code,{children:"setupZoneTestEnv(options)"})}),"\n",(0,i.jsxs)(t.p,{children:["Configures a test environment that uses ",(0,i.jsx)(t.code,{children:"zone.js"}),", which is the mechanism for tracking asynchronous operations.\nIt is suitable for most Angular applications that rely on ",(0,i.jsx)(t.code,{children:"zone.js"})," for change detection and other framework features."]}),"\n",(0,i.jsx)(t.p,{children:"You can customize the environment by providing options as function arguments."}),"\n",(0,i.jsx)(t.h4,{id:"parameters",children:"Parameters"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"options"}),(0,i.jsx)(t.strong,{children:"(optional)"}),": An object follows ",(0,i.jsx)(t.a,{href:"https://github.com/angular/angular/blob/a55341b1ab8d2bc4285a4cce59df7fc0b23c0125/packages/core/testing/src/test_bed_common.ts#L95",children:"TestEnvironmentOptions interface"}),", which allows fine-tuning the environment."]}),"\n"]}),"\n",(0,i.jsx)(t.h4,{id:"example",children:"Example:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Create a Jest setup file:"}),"\n"]}),"\n",(0,i.jsxs)(o.A,{groupId:"code-examples",children:[(0,i.jsx)(l.A,{value:"typescript-cjs",label:"TypeScript CJS",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-ts",metastring:'title="setup-jest.ts" tab={"label": "TypeScript CJS"}',children:"import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone';\n\nsetupZoneTestEnv({\n //...options\n});\n"})})}),(0,i.jsx)(l.A,{value:"typescript-esm",label:"TypeScript ESM",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-ts",metastring:'title="setup-jest.ts" tab={"label": "TypeScript ESM"}',children:"import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone/index.mjs';\n\nsetupZoneTestEnv({\n //...options\n});\n"})})})]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Update your Jest configuration:"}),"\n"]}),"\n",(0,i.jsxs)(o.A,{groupId:"code-examples",children:[(0,i.jsx)(l.A,{value:"typescript-cjs",label:"TypeScript CJS",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-ts",metastring:'title="jest.config.ts" tab={"label": "TypeScript CJS"}',children:"import type { Config } from 'jest';\n\nconst jestConfig: Config = {\n preset: 'jest-preset-angular',\n setupFilesAfterEnv: ['setupZoneTestEnv(options)
",id:"setupzonetestenvoptions",level:3},{value:"Parameters",id:"parameters",level:4},{value:"Example:",id:"example",level:4},{value:"setupZonelessTestEnv(options)
",id:"setupzonelesstestenvoptions",level:3},{value:"Parameters",id:"parameters-1",level:4},{value:"Example:",id:"example-1",level:4}];function h(e){const t={a:"a",code:"code",h2:"h2",h3:"h3",h4:"h4",hr:"hr",li:"li",p:"p",pre:"pre",strong:"strong",ul:"ul",...(0,r.R)(),...e.components};return(0,i.jsxs)(i.Fragment,{children:[(0,i.jsx)(t.p,{children:"In Jest, a test environment defines the sandbox context in which your tests run.\nFor Angular projects, setting up the correct test environment is essential to ensure compatibility with the\nframework-specific features, such as dependency injection and change detection."}),"\n",(0,i.jsxs)(t.p,{children:[(0,i.jsx)(t.code,{children:"jest-preset-angular"})," provides utility functions to simplify setting up a Jest test environment tailored for Angular projects.\nThese functions support both ",(0,i.jsx)(t.strong,{children:"zone-based"})," and ",(0,i.jsx)(t.strong,{children:"zoneless"})," environments, catering to different testing needs."]}),"\n",(0,i.jsx)(t.h2,{id:"functions",children:"Functions"}),"\n","\n",(0,i.jsx)(a.A,{toc:u.slice(1)}),"\n",(0,i.jsx)(t.hr,{}),"\n",(0,i.jsx)(t.h3,{id:"setupzonetestenvoptions",children:(0,i.jsx)(t.code,{children:"setupZoneTestEnv(options)"})}),"\n",(0,i.jsxs)(t.p,{children:["Configures a test environment that uses ",(0,i.jsx)(t.code,{children:"zone.js"}),", which is the mechanism for tracking asynchronous operations.\nIt is suitable for most Angular applications that rely on ",(0,i.jsx)(t.code,{children:"zone.js"})," for change detection and other framework features."]}),"\n",(0,i.jsx)(t.p,{children:"You can customize the environment by providing options as function arguments."}),"\n",(0,i.jsx)(t.h4,{id:"parameters",children:"Parameters"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsxs)(t.li,{children:[(0,i.jsx)(t.code,{children:"options"}),(0,i.jsx)(t.strong,{children:"(optional)"}),": An object follows ",(0,i.jsx)(t.a,{href:"https://github.com/angular/angular/blob/a55341b1ab8d2bc4285a4cce59df7fc0b23c0125/packages/core/testing/src/test_bed_common.ts#L95",children:"TestEnvironmentOptions interface"}),", which allows fine-tuning the environment."]}),"\n"]}),"\n",(0,i.jsx)(t.h4,{id:"example",children:"Example:"}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Create a Jest setup file:"}),"\n"]}),"\n",(0,i.jsxs)(o.A,{groupId:"code-examples",children:[(0,i.jsx)(l.A,{value:"typescript-cjs",label:"TypeScript CJS",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-ts",metastring:'title="setup-jest.ts" tab={"label": "TypeScript CJS"}',children:"import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone';\n\nsetupZoneTestEnv({\n //...options\n});\n"})})}),(0,i.jsx)(l.A,{value:"typescript-esm",label:"TypeScript ESM",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-ts",metastring:'title="setup-jest.ts" tab={"label": "TypeScript ESM"}',children:"import { setupZoneTestEnv } from 'jest-preset-angular/setup-env/zone/index.mjs';\n\nsetupZoneTestEnv({\n //...options\n});\n"})})})]}),"\n",(0,i.jsxs)(t.ul,{children:["\n",(0,i.jsx)(t.li,{children:"Update your Jest configuration:"}),"\n"]}),"\n",(0,i.jsxs)(o.A,{groupId:"code-examples",children:[(0,i.jsx)(l.A,{value:"typescript-cjs",label:"TypeScript CJS",children:(0,i.jsx)(t.pre,{children:(0,i.jsx)(t.code,{className:"language-ts",metastring:'title="jest.config.ts" tab={"label": "TypeScript CJS"}',children:"import type { Config } from 'jest';\n\nconst jestConfig: Config = {\n preset: 'jest-preset-angular',\n setupFilesAfterEnv: ['