🚀 DAY 5 OF LAUNCH WEEK: Introducing Socket Firewall Enterprise.Learn more →
Socket
Book a DemoInstallSign in
Socket

@exogee/graphweaver-end-to-end

Package Overview
Dependencies
Maintainers
2
Versions
123
Alerts
File Explorer

Advanced tools

Socket logo

Install Socket

Detect and block malicious and high-risk dependencies

Install

@exogee/graphweaver-end-to-end

Graphweaver Test Suite

latest
npmnpm
Version
2.20.5
Version published
Weekly downloads
638
7875%
Maintainers
2
Weekly downloads
 
Created
Source

Graphweaver End to End Test Suite

This package tests the following:

  • Using the CLI to create a new Graphweaver app
  • Imports a data source to be used to query
  • Makes requests to the API and tests the results
  • Uses complete apps from the examples folder

NOTE: Each end to end test scenario has a different approach to preparing a graphweaver app to be tested, and building it in the app folder. For example, the import-rest step copies an existing, fully baked graphweaver app from the examples area. This means that you can modify schema files in that location and then import those changes into the system being tested. On the other hand, the import-database-sqlite step uses the approach of generating a graphweaver app from the schema of a database. This means the system being tested will be entirely based on the initial output of the graphweaver generator.

Database

The database used to run these tests can be found here:

https://github.com/lerocha/chinook-database

The SQLite file has been copied from the above directory and stored in database.sqlite.

To Run Tests: Auth

  • Set up your environment variables. You'll need a public/private ES256 key pair that will be used to sign JWT tokens:
# Generate a private key
openssl ecparam -name prime256v1 -genkey -noout -out ecdsa-private-key.pem
# Derive the public key for the private key
openssl ec -in ecdsa-private-key.pem -pubout -out ecdsa-public-key.pem

Then, encode the PEM formatted keys as base64 strings:

# Output the private key in base64 format
cat ecdsa-private-key.pem | base64
# Output the public key in base64 format
cat ecdsa-public-key.pem | base64

Now we're ready to set the environment variables we'll need for the tests:

export AUTH_PRIVATE_KEY_PEM_BASE64="base64_encoded_pem_private_key"
export AUTH_PUBLIC_KEY_PEM_BASE64="base64_encoded_pem_public_key"
export AUTH_BASE_URI="http://localhost:9000"
export AUTH_WHITELIST_DOMAINS="localhost"
export AUTH_MAGIC_LINK_RATE_LIMIT="500"

Finally you can kick them off!

pnpm test-auth

To Run Tests: SQLite

  • Run pnpm dev-sqlite This will start the test server, leave this running to start the tests
  • Run pnpm test-sqlite in another terminal, this will execute the end to end test suite against the server started above

Pre-requisite: MySQL

Before initiating the MySQL tests, ensure the following prerequisites are met on your local system:

  • MySQL Server: Make sure you have MySQL server installed on your machine. You can download and install MySQL from the official MySQL website.

  • Check mysql Command: Confirm that the 'mysql' command is operational in your terminal. In case you encounter a "mysql: command not found" error, follow the steps below to fix it. To add the mysql command to your system's PATH, execute the following command, replacing <mysql_bin_dir> with the actual directory containing the mysql binary: export PATH=$PATH:<mysql_bin_dir>

For instance, if your mysql binary is located in the /usr/local/mysql/bin directory, run: export PATH=$PATH:/usr/local/mysql/bin

Once executed, the "mysql: command not found" error should be resolved, and you can run the mysql command without issues.

  • Environment Variables: You need to have the following environment variables set before running the tests:
    • DATABASE_USERNAME
    • DATABASE_PASSWORD
    • DATABASE_HOST

To set temporary environment variables for your session, execute the following commands in your terminal: export DATABASE_USERNAME=root export DATABASE_PASSWORD=root export DATABASE_HOST=localhost

To Run Tests: MySQL

  • Run pnpm dev-mysql This will start the test server, leave this running to start the tests
  • Run pnpm test-mysql in another terminal, this will execute the end to end test suite against the server started above

Documentation

Comprehensive documentation and usage examples can be found on our Docs Site. It covers installation instructions, detailed API documentation, and guides to help you get started with Graphweaver.

Graphweaver CLI graphweaver

The Graphweaver Command Line Interface (CLI) tool enables you to set up and manage Graphweaver using commands in your command-line shell. Check the graphweaver npm package here.

To Run UI Tests

Install the chrome browser using:

pnpm playwright install --with-deps chromium

Then

  • Run pnpm dev-sqlite This will start the test server, leave this running to start the tests
  • Run pnpm test-ui in another terminal, this will execute the end to end test suite against the server started above

To run the recorder use pnpm playwright codegen

Running the Storage Provider End to End tests:

Before running the Storage Provider make sure that you have followed the steps in the Storage Provider Example readme. This will create a local running S3 service and setup a test db.

Once you have this and have created a bucket make sure to configure the .env file in the storage provider example (This will get copied across when you run the below scripts).

Once you have setup these pre-requisites you can run the following scripts:

pnpm import-storage-provider // this will copy over the example app to the local ./app directory and use the packed node modules. pnpm start-server // this will start the app from the ./app directory pnpm test-ui-storage-provider // This will run the playwright UI tests

To Run 'Fuzzer' Tests

These tests are a 'prototype' for a fuzzer for Graphweaver.

To run them, follow the steps above to set up the Auth E2E tests, and then run pnpm test-fuzz.

Keywords

graphql

FAQs

Package last updated on 17 Oct 2025

Did you know?

Socket

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.

Install

Related posts