Skip to content

Commit

Permalink
test: Fix IQOptionProvider tests
Browse files Browse the repository at this point in the history
  • Loading branch information
andredezzy committed May 11, 2021
1 parent 41ce92f commit 55f1ebf
Show file tree
Hide file tree
Showing 5 changed files with 69 additions and 8 deletions.
67 changes: 65 additions & 2 deletions packages/iqoption/__tests__/IQOptionProvider.spec.tsx
Original file line number Diff line number Diff line change
@@ -1,22 +1,83 @@
import { AxiosInstance } from 'axios'
import { WebSocketClient } from 'packages/iqoption/lib/websocket/WebSocketClient'

import { Hemes } from '@hemes/core'
import { IQOptionProvider, BaseIQOptionProvider } from '@hemes/iqoption'
import {
IQOptionProvider,
BaseIQOptionProvider,
BaseWebSocketClient,
WebSocketEventHistory,
BaseIQOptionAccount,
} from '@hemes/iqoption'

import { SsidRequest } from '../lib/websocket/events/requests/SSID'

const mockWebSocketClient = {
subscribe: jest.fn(),
send: jest.fn(),
waitFor: jest.fn(),
}

const mockIqOptionAccount = {
getProfile: jest.fn(),
setBalanceMode: jest.fn(),
getActiveProfit: jest.fn(),
isActiveEnabled: jest.fn(),
placeDigitalOption: jest.fn(),
openBinaryOption: jest.fn(),
getPosition: jest.fn(),
}

jest.mock('../lib/websocket/WebSocketClient', () => ({
WebSocketClient: class MockWebSocketClient {
WebSocketClient: class MockWebSocketClient implements BaseWebSocketClient {
history: WebSocketEventHistory[]

subscribe() {
return mockWebSocketClient.subscribe()
}

send(...args: any[]) {
return mockWebSocketClient.send(...args)
}

waitFor(...args: any[]) {
return mockWebSocketClient.send(...args)
}
},
}))

jest.mock('../lib/IQOptionAccount', () => ({
IQOptionAccount: class MockIQOptionAccount implements BaseIQOptionAccount {
api: AxiosInstance
webSocket: WebSocketClient

getProfile() {
return mockIqOptionAccount.getProfile()
}

setBalanceMode(...args: any[]) {
return mockIqOptionAccount.setBalanceMode(...args)
}

getActiveProfit(...args: any[]) {
return mockIqOptionAccount.getActiveProfit(...args)
}

isActiveEnabled(...args: any[]) {
return mockIqOptionAccount.isActiveEnabled(...args)
}

placeDigitalOption(...args: any[]) {
return mockIqOptionAccount.placeDigitalOption(...args)
}

openBinaryOption(...args: any[]) {
return mockIqOptionAccount.openBinaryOption(...args)
}

getPosition(...args: any[]) {
return mockIqOptionAccount.getPosition(...args)
}
},
}))

Expand All @@ -40,5 +101,7 @@ describe('IQOptionProvider', () => {
SsidRequest,
expect.any(String)
)

expect(mockIqOptionAccount.setBalanceMode).toBeCalled()
})
})
1 change: 1 addition & 0 deletions packages/iqoption/__tests__/setupTests.ts
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
import dotenv from 'dotenv'
import path from 'path'
jest.setTimeout(30000)

const envFileName = '.env.test.local'

Expand Down
3 changes: 2 additions & 1 deletion packages/iqoption/jest.config.js
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
const path = require('path')

const baseConfig = require('../../jest.config')

const pkg = require('./package.json')

delete baseConfig.projects
Expand All @@ -11,6 +12,6 @@ module.exports = {
...baseConfig,
displayName: pkg.name,
testEnvironment: 'node',
setupFiles: [path.join(testsPath, 'setupTests.ts')],
setupFilesAfterEnv: [path.join(testsPath, 'setupTests.ts')],
testMatch: [path.join(testsPath, '**/*.spec.{ts,tsx}')],
}
4 changes: 0 additions & 4 deletions packages/iqoption/lib/IQOptionProvider.ts
Original file line number Diff line number Diff line change
Expand Up @@ -32,8 +32,6 @@ export class IQOptionProvider implements BaseIQOptionProvider {
email,
password,
}: LogInCredentials): Promise<BaseIQOptionAccount> {
console.log('Credentials ->', { email, password })

this.webSocket.subscribe()

const authApi = axios.create({
Expand All @@ -45,8 +43,6 @@ export class IQOptionProvider implements BaseIQOptionProvider {
password,
})

console.log('Login Response ->', response.data)

this.api.defaults.headers.Authorization = `SSID ${response.data.ssid}`

if (response.data.code !== 'success') {
Expand Down
Original file line number Diff line number Diff line change
@@ -1,12 +1,12 @@
import { formatToTimeZone } from 'date-fns-timezone'
import { getExpirationPeriodTime } from 'packages/iqoption/lib/utils/getExpirationPeriodTime'

import {
Active,
DigitalOptionExpirationPeriod,
OrderDirection,
} from '../../../../types'
import { getExpirationDate } from '../../../../utils/getExpirationDate'
import { getExpirationPeriodTime } from '../../../../utils/getExpirationPeriodTime'
import { Request } from '../../Request'

type AbbreviatedOrderDirection = {
Expand Down

0 comments on commit 55f1ebf

Please sign in to comment.