kevin-mizu/domloggerpp: A browser extension that allows you to monitor, intercept, and debug JavaScript sinks based on customizable configurations.
A browser extension that allows you to monitor, intercept, and debug JavaScript sinks based on customizable configurations. - GitHub - kevin-mizu/domloggerpp: A browser extension that allows you t...
Software estimates have never worked and never will
Since the dawn of computing, humans have sought to estimate how long it takes to build software, and for just as long, they've consistently failed. Estimating even medium-sized projects is devilishly difficult, and estimating large projects is virtually impossible. Yet the industry keeps insisting that the method that hasn't worked for...
Make Your End-to-end Tests More Stable with Playwright's User-first Selectors
When testing and monitoring websites end to end with Playwright, choosing the right locators is crucial. Proper locators help create tests that are less flaky and more reliable. Let's explore user-first locators and how to filter locators for more robust tests. Example Scenario Consider a simple web page with a headline, a button, and a status update box. Clicking the button updates the status and throws confetti. Here's how we can test this. Why we don't want to find a page element with CSS selectors If you're used to some older systems for automation and page manipulation like JQuery, we might be tempted to use CSS selectors. If we inspect this page we'll find, sure enough, that there is a class applied to this button that should select it in the page. We could click this button in a test with a line like await page.locator("button.button-frontpage-style").click() and that would work, but it's not recommended. What is the problem with this approach? Our users look at the page and want to find a button, they don't look for a CSS class, so our test is no longer emulating a user path. If a frontend engineer changes the class for style reasons to read button-hero-panel-style then our test will return a false positive: showing a problem where there is none. If our button text is coming from a CMS, and it breaks, the button text could change to "HEROBUTTON_TXT" and our test would still pass, despite the UI being broken for the user, a false negative. Due to the reasons above, the Playwright project encourages you to not use CSS locators, and it's a good idea to follow the standards set down in the project! Instead of CSS selectors, try User-First Locators Playwright offers a number of locators that are based on page role, a more functional view of the page than finding by CSS or HTML. Use built-in locators like getByRole, getByText, and getByLabel, which will all work the same in the test that they will for the user, even if the user is using an unusual browser build,...
Understanding the Risks of Trivial Packages in Modern Software Projects - Socket
Trivial packages, while convenient, can introduce significant risks such as dependency bloat, security vulnerabilities, and performance issues in mode...
Introduction There was a discussion in our team after releasing Zustand v3 and the brand new Jotai. It was about whether we could develop another library for global state. In this post, I will reflect on the start of Valtio’s development and its API design. Hesitation at First While the idea of a proxy state sounded promising, I was hesitant to develop a third global state library at first. We were already maintaining two libraries in the same problem domain.