Added support for env variables and added basic tests for Alpaca.
This commit is contained in:
parent
6dc8ecaf26
commit
7ceb69e9d5
@ -8,6 +8,7 @@ const config: Config.InitialOptions =
|
|||||||
},
|
},
|
||||||
|
|
||||||
collectCoverageFrom: ['src/*.ts'],
|
collectCoverageFrom: ['src/*.ts'],
|
||||||
|
verbose: false,
|
||||||
}
|
}
|
||||||
|
|
||||||
export default config
|
export default config
|
20
package-lock.json
generated
20
package-lock.json
generated
@ -10,6 +10,7 @@
|
|||||||
"license": "GPL-3.0-or-later",
|
"license": "GPL-3.0-or-later",
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@alpacahq/alpaca-trade-api": "^3.0.1",
|
"@alpacahq/alpaca-trade-api": "^3.0.1",
|
||||||
|
"dotenv": "^16.3.1",
|
||||||
"winston": "^3.10.0"
|
"winston": "^3.10.0"
|
||||||
},
|
},
|
||||||
"devDependencies": {
|
"devDependencies": {
|
||||||
@ -56,6 +57,14 @@
|
|||||||
"npm": ">=6"
|
"npm": ">=6"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
|
"node_modules/@alpacahq/alpaca-trade-api/node_modules/dotenv": {
|
||||||
|
"version": "6.2.0",
|
||||||
|
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz",
|
||||||
|
"integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==",
|
||||||
|
"engines": {
|
||||||
|
"node": ">=6"
|
||||||
|
}
|
||||||
|
},
|
||||||
"node_modules/@ampproject/remapping": {
|
"node_modules/@ampproject/remapping": {
|
||||||
"version": "2.2.1",
|
"version": "2.2.1",
|
||||||
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
|
"resolved": "https://registry.npmjs.org/@ampproject/remapping/-/remapping-2.2.1.tgz",
|
||||||
@ -2429,11 +2438,14 @@
|
|||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/dotenv": {
|
"node_modules/dotenv": {
|
||||||
"version": "6.2.0",
|
"version": "16.3.1",
|
||||||
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-6.2.0.tgz",
|
"resolved": "https://registry.npmjs.org/dotenv/-/dotenv-16.3.1.tgz",
|
||||||
"integrity": "sha512-HygQCKUBSFl8wKQZBSemMywRWcEDNidvNbjGVyZu3nbZ8qq9ubiPoGLMdRDpfSrpkkm9BXYFkpKxxFX38o/76w==",
|
"integrity": "sha512-IPzF4w4/Rd94bA9imS68tZBaYyBWSCE47V1RGuMrB94iyTOIEwRmVL2x/4An+6mETpLrKJ5hQkB8W4kFAadeIQ==",
|
||||||
"engines": {
|
"engines": {
|
||||||
"node": ">=6"
|
"node": ">=12"
|
||||||
|
},
|
||||||
|
"funding": {
|
||||||
|
"url": "https://github.com/motdotla/dotenv?sponsor=1"
|
||||||
}
|
}
|
||||||
},
|
},
|
||||||
"node_modules/electron-to-chromium": {
|
"node_modules/electron-to-chromium": {
|
||||||
|
@ -29,6 +29,7 @@
|
|||||||
},
|
},
|
||||||
"dependencies": {
|
"dependencies": {
|
||||||
"@alpacahq/alpaca-trade-api": "^3.0.1",
|
"@alpacahq/alpaca-trade-api": "^3.0.1",
|
||||||
|
"dotenv": "^16.3.1",
|
||||||
"winston": "^3.10.0"
|
"winston": "^3.10.0"
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
34
test/alpaca.test.ts
Normal file
34
test/alpaca.test.ts
Normal file
@ -0,0 +1,34 @@
|
|||||||
|
import { describe, expect, test } from '@jest/globals';
|
||||||
|
import 'dotenv/config'
|
||||||
|
import { AlpacaExchange } from '../src/alpaca/exchange'
|
||||||
|
import { createLogger, transports, format } from "winston";
|
||||||
|
|
||||||
|
const logger = createLogger({
|
||||||
|
transports: [new transports.Console()],
|
||||||
|
format: format.combine(
|
||||||
|
format.colorize(),
|
||||||
|
format.timestamp(),
|
||||||
|
format.printf(({ timestamp, level, message, service }) => {
|
||||||
|
return `[${timestamp}] ${service} ${level}: ${message}`;
|
||||||
|
})
|
||||||
|
),
|
||||||
|
defaultMeta: {
|
||||||
|
service: "AlpacaTest",
|
||||||
|
},
|
||||||
|
});
|
||||||
|
|
||||||
|
describe('Alpaca Tests', () => {
|
||||||
|
test('portfolio fetch', () => {
|
||||||
|
expect(process.env.ALPACA_API_KEY).toBeDefined();
|
||||||
|
expect(process.env.ALPACA_SECRET_KEY).toBeDefined();
|
||||||
|
let exchange = new AlpacaExchange(process.env.ALPACA_API_KEY!, process.env.ALPACA_SECRET_KEY!, true);
|
||||||
|
expect(exchange.portfolioProvider.fetchPortfolio()).resolves;
|
||||||
|
});
|
||||||
|
|
||||||
|
test('quote fetch', async () => {
|
||||||
|
expect(process.env.ALPACA_API_KEY).toBeDefined();
|
||||||
|
expect(process.env.ALPACA_SECRET_KEY).toBeDefined();
|
||||||
|
let exchange = new AlpacaExchange(process.env.ALPACA_API_KEY!, process.env.ALPACA_SECRET_KEY!, true);
|
||||||
|
expect(exchange.quoteProvider.fetchQuote("AAPL")).resolves;
|
||||||
|
});
|
||||||
|
});
|
Loading…
x
Reference in New Issue
Block a user