Skip to content

Commit

Permalink
adjust tests
Browse files Browse the repository at this point in the history
  • Loading branch information
serdiukov-o-nordwhale committed Jul 2, 2020
1 parent d5974ff commit 71fe48b
Show file tree
Hide file tree
Showing 5 changed files with 76 additions and 55 deletions.
3 changes: 2 additions & 1 deletion .env.test
Expand Up @@ -28,7 +28,8 @@ DISABLE_FACE_VERIFICATION=false
KEEP_FACE_VERIFICATION_RECORDS=24
NEW_RELIC_LICENSE_KEY=ab380edbf4e6210529f4aa2513445e7f75672594
JWT_PASS=G00DDAPP
WEB3_SITE_URL=https://inivtation.herokuapp.com
#WEB3_SITE_URL=https://inivtation.herokuapp.com
WEB3_SITE_URL=https://w3.gooddollar.org
FUSE_API=https://explorer.fuse.io
TWILIO_AUTH_ID=
TWILIO_AUTH_TOKEN=
Expand Down
110 changes: 64 additions & 46 deletions src/imports/__tests__/torusVerifier.test.js
Expand Up @@ -6,20 +6,12 @@ import { assign } from 'lodash'
import conf from '../../server/server.config'
import { recoverPublickey } from '../../server/utils/eth'
import torusVerifier from '../torusVerifier'
import { DefaultVerificationStrategy } from '../../server/storage/verifier'
import createUserVerifier from '../../server/storage/verifier'

jest.setTimeout(20000)
describe('Test torus email/mobile to address', () => {
let mainnetVerifier
const strategies = ['google', 'google-old', 'auth0-pwdless-sms', 'auth0-pwdless-email']

beforeAll(() => {
const { torusNetwork, torusProxyContract } = conf

assign(conf, { torusNetwork: 'mainnet', torusProxyContract: '0x638646503746d5456209e33a2ff5e3226d698bea' })
mainnetVerifier = torusVerifier.constructor.factory()
assign(conf, { torusNetwork, torusProxyContract })
})
//const strategies = ['google', 'google-old', 'auth0-pwdless-sms', 'auth0-pwdless-email']
const strategies = ['auth0-pwdless-email']

it('should get torus nodes', async () => {
const nodes = await torusVerifier.fetchNodeDetails.getNodeDetails()
Expand All @@ -30,15 +22,6 @@ describe('Test torus email/mobile to address', () => {
})
})

it('should get torus nodes from mainnet', async () => {
const nodes = await mainnetVerifier.fetchNodeDetails.getNodeDetails()

expect(nodes).toMatchObject({
nodeListAddress: '0x638646503746d5456209e33a2ff5e3226d698bea',
torusNodeEndpoints: expect.any(Array)
})
})

it('should get strategy options', async () => {
strategies.forEach(torusType => {
const z = torusVerifier.getVerificationOptions(torusType, { email: 'x@x.com', mobile: '+972505050' })
Expand All @@ -52,11 +35,13 @@ describe('Test torus email/mobile to address', () => {
})
})

xit('should return public key for email/mobile', async () => {
it('should return public key for email/mobile', async () => {
const { torusNodeEndpoints, torusNodePub } = await torusVerifier.fetchNodeDetails.getNodeDetails()

await Promise.all(
strategies.map(async torusType => {
const opts = torusVerifier.getVerificationOptions(torusType, { email: 'x@gmail.com', mobile: '+972507319093' })

const response = await torusVerifier.torus.getPublicAddress(
torusNodeEndpoints,
torusNodePub,
Expand Down Expand Up @@ -87,40 +72,29 @@ describe('Test torus email/mobile to address', () => {
expect(signedPublicKey).toEqual('0xD97b62EC3266EbA1F8F90Ba264174c138b5d4C38'.toLowerCase())
})

xit('should return public key for mainnet email/mobile', async () => {
const { torusNodeEndpoints, torusNodePub } = await mainnetVerifier.fetchNodeDetails.getNodeDetails()

const opts = mainnetVerifier.getVerificationOptions('google', {
email: 'x@gmail.com',
mobile: '+9720507319000'
})

const response = await mainnetVerifier.torus.getPublicAddress(
torusNodeEndpoints,
torusNodePub,
{ verifier: opts.verifier, verifierId: opts.identifier },
false
)

expect([
'0x59fFCACC9969441eB1514e984CF9430b720EF626',
'0x2916342DA5cF53ac9CfcBCdc7c6AB0405Ea5F439',
'0xB5AD204135Ad58856a49CdA7351026c7e4906181'
]).toContain(response)
})

it('should modify userrecord if verified', async () => {
const userVerifier = new DefaultVerificationStrategy()
const { verifyProof } = torusVerifier

const userRecord = {
smsValidated: false,
isEmailConfirmed: true
}

const requestPayload = {
torusProof: '0x0',
torusProvider: 'google',
torusProofNonce: 1
}

const userVerifier = createUserVerifier(userRecord, requestPayload, console)

torusVerifier.verifyProof = jest.fn(() => ({
mobileVerified: true,
emailVerified: false
}))

try {
torusVerifier.verifyProof = jest.fn(() => ({ mobileVerified: true, emailVerified: false }))
await userVerifier.verify({ torusProof: '0x0', torusProvider: 'google', torusProofNonce: 1 }, userRecord, console)
await userVerifier.verifySignInIdentifiers()
} finally {
assign(torusVerifier, { verifyProof })
}
Expand All @@ -130,4 +104,48 @@ describe('Test torus email/mobile to address', () => {
isEmailConfirmed: true
})
})

/*
describe('mainnet tests', () => {
let mainnetVerifier
beforeAll(() => {
const { torusNetwork, torusProxyContract } = conf
assign(conf, { torusNetwork: 'mainnet', torusProxyContract: '0x638646503746d5456209e33a2ff5e3226d698bea' })
mainnetVerifier = torusVerifier.constructor.factory()
assign(conf, { torusNetwork, torusProxyContract })
})
it('should get torus nodes from mainnet', async () => {
const nodes = await mainnetVerifier.fetchNodeDetails.getNodeDetails()
expect(nodes).toMatchObject({
nodeListAddress: '0x638646503746d5456209e33a2ff5e3226d698bea',
torusNodeEndpoints: expect.any(Array)
})
})
xit('should return public key for mainnet email/mobile', async () => {
const { torusNodeEndpoints, torusNodePub } = await mainnetVerifier.fetchNodeDetails.getNodeDetails()
const opts = mainnetVerifier.getVerificationOptions('google', {
email: 'x@gmail.com',
mobile: '+9720507319000'
})
const response = await mainnetVerifier.torus.getPublicAddress(
torusNodeEndpoints,
torusNodePub,
{ verifier: opts.verifier, verifierId: opts.identifier },
false
)
expect([
'0x59fFCACC9969441eB1514e984CF9430b720EF626',
'0x2916342DA5cF53ac9CfcBCdc7c6AB0405Ea5F439',
'0xB5AD204135Ad58856a49CdA7351026c7e4906181'
]).toContain(response)
})
})*/
})
2 changes: 2 additions & 0 deletions src/imports/torusVerifier.js
Expand Up @@ -66,6 +66,8 @@ class TorusVerifier {
constructor(Config, logger) {
const { torusNetwork, torusProxyContract } = Config

console.log({ torusNetwork, torusProxyContract })

this.torus = new TorusUtils()
this.logger = logger

Expand Down
14 changes: 7 additions & 7 deletions src/server/server.config.js
@@ -1,8 +1,9 @@
import convict from 'convict'
import dotenv from 'dotenv'
import ContractsAddress from '@gooddollar/goodcontracts/releases/deployment.json'

import networks from './networks'
import ContractsAddress from '@gooddollar/goodcontracts/releases/deployment.json'

import { version } from '../../package.json'

dotenv.config({ path: process.env.NODE_ENV === 'test' ? `.env.test` : '.env' })
Expand Down Expand Up @@ -443,20 +444,19 @@ conf.set('ethereum', networks[networkId])

//parse S3 details for gundb in format of key,secret,bucket
if (privateS3) {
let s3Vals = privateS3.split(',')
let s3Conf = { key: s3Vals[0], secret: s3Vals[1], bucket: s3Vals[2] }
const [key, secret, bucket] = privateS3.split(',')

conf.set('gunPrivateS3', s3Conf)
conf.set('gunPrivateS3', { key, secret, bucket })
}

if (publicS3) {
let s3Vals = publicS3.split(',')
let s3Conf = { key: s3Vals[0], secret: s3Vals[1], bucket: s3Vals[2] }
const [key, secret, bucket] = publicS3.split(',')

conf.set('gunPublicS3', s3Conf)
conf.set('gunPublicS3', { key, secret, bucket })
}

// Perform validation
conf.validate({ allowed: 'strict' })

// eslint-disable-next-line
export default conf.getProperties()
2 changes: 1 addition & 1 deletion src/server/storage/verifier.js
Expand Up @@ -3,7 +3,7 @@ import { assign } from 'lodash'
import TorusVerifier from '../../imports/torusVerifier'
import FacebookVerifier from '../../imports/facebookVerifier'

export class DefaultVerificationStrategy {
class DefaultVerificationStrategy {
async verify(requestPayload, userRecord, logger) {
const { torusProof, torusProvider, torusProofNonce } = requestPayload
let verificationResult = { emailVerified: false, mobileVerified: false }
Expand Down

0 comments on commit 71fe48b

Please sign in to comment.