Security News
38% of CISOs Fear They’re Not Moving Fast Enough on AI
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
gemini-react
Advanced tools
gemini plugin for simplifying visual regression testing on React + webpack stack.
WARNING: Right now plugin is pretty much at the proof-of-concept stage, do not use in production.
Install plugin using npm
:
npm install gemini-react
Enable it in your gemini config file:
system:
plugins:
react:
webpackConfig: <PATH>
hostname: <HOST NAME>
port: <PORT NUMBER> ```
webpackConfig
(required) – path to your webpack config. Plugin will use
loaders from this file to build test pages.
listenHost
(default: 127.0.0.1) - hostname to run reference test server on.
port
(default: 5432) - port to run test server on.
replaceRootUrl
(default: true) - automatically sets rootUrl
of every
browser to http://<listenHost>:<port>
. Set to false
if rootUrl
should be
something else.
staticRoot
- directory, which contains your static asset files. Will be
mounted by your test server automatically.
cssFiles
- list of CSS files to include in every test page. Requires
staticRoot
option to be set.
jsModules
- list of additional js modules to include in the test pages.
Relative to project root. This modules will be included into your client
bundle before the rest files.
customizeServer
- path to js file, used to customize the express server.
The file should have a single export, which is function of (app, express)
.
Example:
module.exports = function(app, express) {
app.use(function myMiddleware(req, res, next) {
...
});
}
webpackLazyMode
- switches webpack dev middleware to lazy mode, which means
javascript will be recompiled on each request.
Use geminiReact
variable instead of gemini
and render(<ReactComponent />)
instead of setUrl
and setCaptureElements
. The rest is the same as vanilla
gemini
:
const MyComponent = require('./path/to/my/component');
geminiReact.suite('my react test', suite => {
suite.render(<MyComponent prop="value" />)
.capture('initial');
});
TIP: To use JSX in your tests, you might need gemini-babel plugin.
You don't need to create the reference pages or run the server, plugin will do everything for you.
If you want to interact with rendered component, use this.renderedComponent
inside your test:
suite.capture('clicked', function(actions) {
actions.click(this.renderedComponent);
});
If you have any test-specific stylesheets, you can include them into the test
page by calling suite.includeCss
:
suite.includeCss('/my-component.css');
By default, geminiReact
will capture rendered at mounting point element.
If you want to add some extra elements, use setExtraCaptureElements
:
suite.setExtraCaptureElements(['.popup']);
FAQs
Wrapper, which simplifies writing gemini tests for react components
The npm package gemini-react receives a total of 0 weekly downloads. As such, gemini-react popularity was classified as not popular.
We found that gemini-react demonstrated a not healthy version release cadence and project activity because the last version was released a year ago. It has 12 open source maintainers 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
CISOs are racing to adopt AI for cybersecurity, but hurdles in budgets and governance may leave some falling behind in the fight against cyber threats.
Research
Security News
Socket researchers uncovered a backdoored typosquat of BoltDB in the Go ecosystem, exploiting Go Module Proxy caching to persist undetected for years.
Security News
Company News
Socket is joining TC54 to help develop standards for software supply chain security, contributing to the evolution of SBOMs, CycloneDX, and Package URL specifications.