snowflake-sdk
Version:
Node.js driver for Snowflake
134 lines (100 loc) • 4.2 kB
Markdown
********************************************************************************
NodeJS Driver for Snowflake
********************************************************************************
<p>
<a href="https://github.com/snowflakedb/snowflake-connector-nodejs/actions?query=workflow%3A%22Build+and+Test%22+branch%3Amaster" target="_blank"><img src="https://github.com/snowflakedb/snowflake-connector-nodejs/workflows/Build%20and%20Test/badge.svg?branch=master" alt="master" /></a>
<a href="https://www.npmjs.com/package/snowflake-sdk" target="_blank"><img src="https://img.shields.io/npm/v/snowflake-sdk.svg" alt="npm" /></a>
<a href="http://www.apache.org/licenses/LICENSE-2.0.txt" target="_blank"><img src="http://img.shields.io/:license-Apache%202-brightgreen.svg" alt="apache" /> </a>
<a href="https://codecov.io/gh/snowflakedb/snowflake-connector-nodejs" target="_blank"><img src="https://codecov.io/gh/snowflakedb/snowflake-connector-nodejs/branch/master/graph/badge.svg?token=QZMWDu35ds" alt="codecov" /></a>
</p>
| :exclamation: | For production-affecting issues related to the driver, please [create a case with Snowflake Support](https://community.snowflake.com/s/article/How-To-Submit-a-Support-Case-in-Snowflake-Lodge). |
|---------------|:------------------------|
Install
======================================================================
Run `npm i snowflake-sdk` in your existing NodeJs project.
Docs
======================================================================
For detailed documentation and basic usage examples, please see the documentation
at <a href="https://docs.snowflake.net/manuals/user-guide/nodejs-driver.html">NodeJS Driver for Snowflake</a>.
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
```