/snowflake-connector-nodejs

NodeJS driver

Primary LanguageJavaScriptApache License 2.0Apache-2.0


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.

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