@exogee/graphweaver-end-to-end
v2.8.0
Published
Graphweaver Test Suite
Downloads
161
Readme
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
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