Skip to content

snowflakedb/snowflake-connector-nodejs

Repository files navigation


NodeJS Driver for Snowflake


master npm apache codecov

For production-affecting issues related to the driver, please create a case with Snowflake Support.

Install

Run npm i snowflake-sdk in your existing NodeJs project.

Docs

For detailed documentation and basic usage examples, please see the documentation at NodeJS Driver for Snowflake.

Note

This driver currently does not support GCP regional endpoints. Please ensure that any workloads using through this driver do not require support for regional endpoints on GCP. If you have questions about this, please contact Snowflake Support.

Test

Prepare for tests

Specify env variables:

export SNOWFLAKE_TEST_USER=<your_user>
export SNOWFLAKE_TEST_PASSWORD=<your_password>
export SNOWFLAKE_TEST_ACCOUNT=<your_account>
export SNOWFLAKE_TEST_WAREHOUSE=<your_warehouse>
export SNOWFLAKE_TEST_DATABASE=<your_database>
export SNOWFLAKE_TEST_SCHEMA=<your_schema>
export SNOWFLAKE_TEST_PROTOCOL=<your_snowflake_protocol>
export SNOWFLAKE_TEST_HOST=<your_snowflake_host>
export SNOWFLAKE_TEST_PORT=<your_snowflake_port>

Run hang webserver:

python3 ci/container/hang_webserver.py 12345 &

Run tests

Run unit tests:

npm test

or

npm run test:unit

To run single test file use test:single script, e.g. run tests in test/unit/snowflake_test.js only:

npm run test:single -- test/unit/snowflake_test.js

Run integration tests:

npm run test:integration

Manual test

Specify env variables:

export RUN_MANUAL_TESTS_ONLY=true
export SNOWFLAKE_TEST_OKTA_USER=<your_okta_user>
export SNOWFLAKE_TEST_OKTA_PASS=<your_okta_password>
export SNOWFLAKE_TEST_OKTA_AUTH=<your_okta_auth>
export SNOWFLAKE_TEST_OAUTH_TOKEN=<your_oauth_accesstoken>
export SNOWFLAKE_TEST_BROWSER_USER=<your_browser_user>

Run manual connection test for different authenticators

npm run test:manual

Getting the code coverage

Run tests and show code coverage report

npm run test:ci:coverage

Package

The npm package can be built by the command:

npm pack

Note it is not required to build a package to run tests blow.

Development

Reformat source code

Check formatting on all files:

npm run lint:check:all

Check formatting of single file or directory e.g. test/unit/snowflake_test.js:

npm run lint:check -- test/unit/snowflake_test.js

Fix potentially fixable formatting errors and warnings of single file or directory e.g. test/unit/logger:

npm run lint:fix -- test/unit/logger