
Security News
PodRocket Podcast: Inside the Recent npm Supply Chain Attacks
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
screenshot-tester
Advanced tools
Take screenshots (= snapshots) of desktop (node) apps (i.e. libui-node) to test for regressions.
const test = require("screenshot-tester")();
(async function(){
await test("my_example.js", "The Window Title");
})();
or for native apps:
const test = require("screenshot-tester")({raw: true});
(async function(){
await test("app", "The Window Title");
})();
This will:
node my_example.js
or app
.A failed test will generate a diff file, hightlighting the differing areas in red:
─ outDir ('.')
├─ reference
│ └─ my_example.js.png
└─ tmp
├─ my_example.js.png
└─ my_example.js_diff.png
const test = require("screenshot-tester")({
outDir = ".",
raw = false,
interactive = false,
delay = 0,
accuracy = "0.01%",
logger = require("screenshot-tester").defaultLogger
});
async function test(file, title, {delay, raw, delta = 20}){};
function test.generateHTML(){};
async function test.pushToServer(host, repoId, issue, onlyFailed, osAppend) {};
require("screenshot-tester")(...)
outDir
: Optional - The folder in which the screenshots will be saved (see above).raw
: Optional - Set to true
to run a binary instead of a node script. It is applied to all following test()
calls.interactive
: Optional - Whether to prompt the user if the reference image should be updated if a test failed.delay
: Optional - Additional delay after starting the application (in ms). It is applied to all following test()
calls.accuracy
: Optional - The threshold (500
or "500"
=> 500px, "0.01%"
=> 0.01%)logger
: Optional - A function to call for logging: function(type, file, error){}
. Types: PASSED, FAILED, MISSING, ERROR, REPORT, OS, RETRY, PUSH
test(...)
file
: The node script/binary to test (or an array to pass arguments).title
: The title of the window to be captured.delay
: Optional - As above, but only for this call.raw
: Optional - As above, but only for this call.delta
: Optional - How insensitive the color comparison is.accuracy
: Optional - As above, but only for this call.test.generateHTML()
This will generate a HTML report (see example image) at ${outDir}/report.html
.
test.pushToServer(...)
Send the result this test to a screenshot-tester-server instance.
host
: The domain of the server (e.g. https://example.com
)repoId
: The GitHub repo of the current pull request(e.g. owner/repo-name
)issue
: The PR number (e.g. 2
)onlyFailed
: Whether to push only failed testsosAppend
: String to append to the reported OSpip install click pyobjc-framework-Quartz
FAQs
Tester for UI regressions
We found that screenshot-tester demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 1 open source maintainer collaborating on the project.
Did you know?
Socket for GitHub automatically highlights issues in each pull request and monitors the health of all your open source dependencies. Discover the contents of your packages and block harmful activity before you install or update your dependencies.
Security News
Socket CEO Feross Aboukhadijeh discusses the recent npm supply chain attacks on PodRocket, covering novel attack vectors and how developers can protect themselves.
Security News
Maintainers back GitHub’s npm security overhaul but raise concerns about CI/CD workflows, enterprise support, and token management.
Product
Socket Firewall is a free tool that blocks malicious packages at install time, giving developers proactive protection against rising supply chain attacks.