---
title: "Testing perfection for Node?"
publication: "Node Weekly"
issue: 505
published_at: "2023-10-10"
canonical_url: "https://nodeweekly.com/issues/505"
---

Plus a new CLI app framework, and a way to test VS Code extensions. |        

#​505 — October 10, 2023 

[Read on the Web](https://nodeweekly.com/issues/505)   

✍️ Due to being on the road attending the inaugural [AI Engineer Summit](https://www.ai.engineer/summit), this week's issue was _meant_ to be far shorter than usual.. but I'm not sure it's actually turned out that way 😅 In any case, we're back to full service next week!
__
Your editor, Peter Cooper  

Together with [![Bosch\](https://res.cloudinary.com/cpress/image/upload/c_fill,g_auto,w_1280,h_443/e_make_transparent/co_white,e_outline:17/udmp5biufp3th3c4xz0n.png)](https://www.bosch.com/careers/?utm_campaignid=node&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=primary&utm_content=recognition) 

![Node.js Weekly](https://res.cloudinary.com/cpress/image/upload/v1653576619/lgfqinzbdqttwmhvljxb.png) 

[![\](https://res.cloudinary.com/cpress/image/upload/w_1280,e_sharpen:60,q_auto/nglkxtauvaf4fzh54jy6.jpg)](https://payloadcms.com/blog/payload-2-0)  

[Payload 2.0: A Headless CMS Platform Built on Node](https://payloadcms.com/blog/payload-2-0) — There’s much to like about Payload if you need a Node-based headless CMS, including a customizable React-based admin system, GraphQL or REST APIs, flexible auth and file upload systems, etc. Enough features to _“feel more like an app framework akin to Laravel,”_ says James. v2.0 introduces Postgres support (it was exclusively using MongoDB before), Vite support, an all new rich text editor, and more. [GitHub repo](https://github.com/payloadcms/payload). 

James Mikrut   

[Japa 3.0: Node.js Testing Perfection? Perhaps.](https://japa.dev/docs/introduction) — From the same creator as [AdonisJS](https://adonisjs.com/), Japa slides into your existing workflows and has no build tool requirements. Its author even makes the bold claim that _“Japa is as close to perfection as it can get when it comes to testing in Node.js.”_ 

Harminder Virk   [![\](https://copm.s3.amazonaws.com/5052dafd.png)](https://www.bosch.com/careers/?utm_campaignid=node&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=primary&utm_content=recognition) 

[Feel the Power of More Than 420,000 Teammates and Work #LikeABosch](https://www.bosch.com/careers/?utm_campaignid=node&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=primary&utm_content=recognition) — At Bosch, we shape the future with high-quality technologies and services to inspire people and improve their lives. And it’s our people who make us remarkable. Our success is your success. Let’s celebrate together. [Learn more](https://www.bosch.com/careers/?utm_campaignid=node&utm_source=cooperpress&utm_medium=cpc&utm_campaign=wlab&utm_term=primary&utm_content=recognition). 

Bosch sponsor   

[A Web Server ‘Hello World’ Benchmark: Go vs Node vs Nim vs Bun](https://lemire.me/blog/2023/10/07/web-server-hello-world-benchmark-go-vs-node-js-vs-nim-vs-bun/) — The standard disclaimer applies: benchmarks are difficult and don’t always measure what you _should_ care about. Nonetheless, they remain of interest and here’s a quick example comparing the simplest of HTTP servers in with Go, Node, Bun and Nim. In short: Node stands up fine, but you'd want to benchmark something more elaborate than this in reality. 

Daniel Lemire   

- 📅 [NodeConf EU 2023](https://www.nodeconf.eu/) is taking place next month (November 6-8) in Ireland.
- ⚙️ Stephen Röttger of the V8 team has blogged about efforts to [enable control-flow integrity (CFI) in V8.](https://v8.dev/blog/control-flow-integrity), essentially a way to reduce the ability of nefarious third parties to exploit V8's control flow in order to trigger arbitrary shellcode.
- 🍞 Another week, another Bun release: [Bun 1.0.4](https://bun.sh/blog/bun-v1.0.4) gets more Node.js compatibility improvements and `Bun.serve()` now uses a lot less memory.
- 🔠 Phil Nash looks at some of the [potential 'dangers' of regular expressions](https://www.sonarsource.com/blog/vulnerable-regular-expressions-javascript/) in JavaScript.
- 🚫 [You can no longer use GITHUB_ENV](https://github.blog/changelog/2023-10-05-github-actions-node_options-is-now-restricted-from-github_env/) to set NODE_OPTIONS in GitHub Actions workflows.   

[The Hidden Performance Cost of Node and GraphQL](https://www.softwareatscale.dev/p/the-hidden-performance-cost-of-nodejs) — _“GraphQL’s modular structure generally leads to code that instantiates excessive promises, which degrades request performance.”_ 

Utsav Shah   

💡 [Postgraphile](https://postgraphile.org/) provides another Node-related approach on this topic.  

[Termost: Another CLI App Framework](https://github.com/adbayb/termost) — You don’t _need_ a framework to create CLI apps with Node, but if you want things like options parsing, colorful output, and a help system out of the box, systems like [Commander.js](https://github.com/tj/commander.js) and [oclif](https://oclif.io/) can be handy. Termost offers another option focused around a fluent/chainable API approach, first class TypeScript support, and a lighter touch. 

Ayoub Adib   

[The Basics of Deploying and Testing AWS Step Functions with Node](https://blog.appsignal.com/2023/10/04/deploy-and-test-aws-step-functions-with-nodejs.html) 
Camilo Reyes       

📰 Classifieds   

🧑‍💻 Check out this walkthrough and demo of [Temporal, the simple, scalable, open source way to write and run reliable cloud applications](https://t.mp/45mLFT5%29). 

--- 

🐘 Learn how [Epsio](https://docs.epsio.io) eliminates the constant struggle and costs of optimizing complex PostgreSQL queries by incrementally maintaining the results of your heaviest queries.      

[Tailwind Elements: 500+ Bootstrap Components Recreated with Tailwind](https://tailwind-elements.com/) — And, specifically for Node developers, there’s [an Express integration](https://tailwind-elements.com/docs/standard/integrations/express-integration/). 

Tailwind Elements   

[node-webrtc: Native Addon That Provides Bindings to WebRTC M94](https://github.com/WonderInventions/node-webrtc) — This project is aiming for spec compliance and will eventually be tested using the W3C’s [web-platform-tests](https://github.com/web-platform-tests/wpt) project. node-webrtc has been around a long time but this fork is notable for working with modern Node versions. 

Wonder Inventions, Roberts, et al.   

[Visual Studio Code Extension Tester v5.10](https://github.com/redhat-developer/vscode-extension-tester) — A framework for simulating user interactions with VS Code and its extensions via Selenium Webdriver. Clever idea. 

Red Hat   

- 🍀 [MongoDB In-Memory Server 9.0](https://github.com/nodkz/mongodb-memory-server) – A in-memory MongoDB instace for testing/mocking purposes.
- [oclif 4.0](https://github.com/oclif/oclif) – An open CLI framework for Node from Salesforce.
- [Poolifier 3.0](https://github.com/poolifier/poolifier) – Worker pools using `worker_threads` and `cluster`.
- [Mongoose 7.6](https://github.com/Automattic/mongoose) – Popular MongoDB object modeling library.
- [ArangoJS 8.5](https://github.com/arangodb/arangojs) – Driver for the [ArangoDB](https://arangodb.com/) graph database.
- [node-cron 3.1](https://github.com/kelektiv/node-cron) – Execute functions on a schedule.
- [prom-client 15.0](https://github.com/siimon/prom-client/releases/tag/v15.0.0) – Prometheus client for Node.
- [oauth2-mock-server 7.0](https://github.com/axa-group/oauth2-mock-server)
- [pnpm 8.9](https://github.com/pnpm/pnpm/releases/tag/v8.9.0)    

**🕰 ICYMI** (_Some older stuff that's still worth checking out_)  

- Victor Ikechukwu [highlights the security implications of cross-origin resource sharing (CORS) in Node](https://snyk.io/blog/security-implications-cors-node-js/), along with some best practices.
- QA engineer Luc Gagan shares [how to identify and deal with flaky tests](https://ray.run/blog/detecting-and-handling-flaky-tests-in-playwright) in Playwright.
- Najia Gul looks at [how we can avoid web cache poisoning attacks](https://snyk.io/blog/how-to-avoid-web-cache-poisoning-attacks/).
- Here's an overview of [time-travel debugging](https://temporal.io/blog/time-travel-debugging-production-code) and how it relates to debugging your production code execution.      

**Got a link for us?** Reply and tell us. We can't include everything but we'll look at anything you send. _Thanks!_ 

--- 

**Sponsorship:** Email `[kristina@cooperpress.com](mailto:kristina@cooperpress.com)` for details. 

--- 

Published by Cooper Press Ltd.
Fairfield Enterprise Centre, Louth, LN11 0LS, United Kingdom 

[Cancel your subscription](https://nodeweekly.com/leave/*|UID|*) or [change your address](https://nodeweekly.com/edit_subscription/*|UID|*).
