trufflesuite / drizzle-legacy

Reactive Ethereum datastore for dapp UIs.
http://truffleframework.com/docs/drizzle/getting-started
MIT License
503 stars 128 forks source link

Upgrade web3 to beta-41 - 15 of 16 tests fail. No web3 provider #172

Closed dangell7 closed 5 years ago

dangell7 commented 5 years ago

I was updating the repo to the current version of web3-beta-41 and 15 out of 16 jest tests fail.

To reproduce the issue, clone repo on run npm install web3

Then run npm test.

dangell7 commented 5 years ago

This issue does not exists when I remove drizzle from my application.

dangell7 commented 5 years ago

npm test error stack

> drizzle@1.2.5 test /Users/dorian/projects/gambit/web/drizzle
> jest --notify

 FAIL  test/blocks.test.js
  ● read from blocks › by listening through websockets › listens for block headers

    Please provide an valid Web3 provider

      23 |  * @returns {Object} A Web3 provider sourced from `global.provider`
      24 |  */
    > 25 | const getWeb3 = (provider = global.provider) => new Web3(provider)
         |                                                 ^
      26 | 
      27 | /**
      28 |  * getWeb3Assets deploys a contract on ganache provider

      at ProviderResolver.resolve (node_modules/web3-providers/dist/web3-providers.cjs.js:720:13)
      at Web3.AbstractWeb3Module (node_modules/web3-core/dist/web3-core.cjs.js:27:51)
      at new Web3 (node_modules/web3/dist/web3.cjs.js:30:68)
      at getWeb3 (test/utils/helpers.js:25:49)
      at Object.<anonymous> (test/blocks.test.js:11:12)

  ● read from blocks › by listening through websockets › listens for block headers

    TypeError: Cannot read property 'eth' of undefined

       9 | export function createBlockChannel ({ drizzle, web3, syncAlways }) {
      10 |   return eventChannel(emit => {
    > 11 |     const blockEvents = web3.eth
         |                              ^
      12 |       .subscribe('newBlockHeaders', (error, result) => {
      13 |         if (error) {
      14 |           emit({ type: 'BLOCKS_FAILED', error })

      at eth (src/blocks/blocksSaga.js:11:30)
      at eventChannel (node_modules/redux-saga/lib/internal/channel.js:165:21)
      at createBlockChannel (src/blocks/blocksSaga.js:10:10)
      at Object.<anonymous> (test/blocks.test.js:19:23)

  ● read from blocks › by listening through websockets › listens for block headers

    TypeError: Cannot read property 'eth' of undefined

      21 | 
      22 |     test('listens for block headers', async () => {
    > 23 |       await web3.eth.sendTransaction({
         |                  ^
      24 |         from: global.accounts[0],
      25 |         to: global.accounts[1],
      26 |         value: 200

      at eth (test/blocks.test.js:23:18)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
      at new F (node_modules/core-js/library/modules/_export.js:36:28)
      at Object.<anonymous> (node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)

  ● read from blocks › by listening through websockets › unsubscribes from block headers

    Please provide an valid Web3 provider

      23 |  * @returns {Object} A Web3 provider sourced from `global.provider`
      24 |  */
    > 25 | const getWeb3 = (provider = global.provider) => new Web3(provider)
         |                                                 ^
      26 | 
      27 | /**
      28 |  * getWeb3Assets deploys a contract on ganache provider

      at ProviderResolver.resolve (node_modules/web3-providers/dist/web3-providers.cjs.js:720:13)
      at Web3.AbstractWeb3Module (node_modules/web3-core/dist/web3-core.cjs.js:27:51)
      at new Web3 (node_modules/web3/dist/web3.cjs.js:30:68)
      at getWeb3 (test/utils/helpers.js:25:49)
      at Object.<anonymous> (test/blocks.test.js:11:12)

  ● read from blocks › by listening through websockets › unsubscribes from block headers

    TypeError: Cannot read property 'eth' of undefined

       9 | export function createBlockChannel ({ drizzle, web3, syncAlways }) {
      10 |   return eventChannel(emit => {
    > 11 |     const blockEvents = web3.eth
         |                              ^
      12 |       .subscribe('newBlockHeaders', (error, result) => {
      13 |         if (error) {
      14 |           emit({ type: 'BLOCKS_FAILED', error })

      at eth (src/blocks/blocksSaga.js:11:30)
      at eventChannel (node_modules/redux-saga/lib/internal/channel.js:165:21)
      at createBlockChannel (src/blocks/blocksSaga.js:10:10)
      at Object.<anonymous> (test/blocks.test.js:19:23)

  ● read from blocks › by listening through websockets › unsubscribes from block headers

    TypeError: Cannot read property 'take' of undefined

      33 | 
      34 |     test('unsubscribes from block headers', () => {
    > 35 |       blockListener.take(event => {
         |                     ^
      36 |         expect(event.type).toEqual('@@redux-saga/CHANNEL_END')
      37 |       })
      38 | 

      at Object.take (test/blocks.test.js:35:21)

  ● read from blocks › by polling › polls for block headers

    Please provide an valid Web3 provider

      23 |  * @returns {Object} A Web3 provider sourced from `global.provider`
      24 |  */
    > 25 | const getWeb3 = (provider = global.provider) => new Web3(provider)
         |                                                 ^
      26 | 
      27 | /**
      28 |  * getWeb3Assets deploys a contract on ganache provider

      at ProviderResolver.resolve (node_modules/web3-providers/dist/web3-providers.cjs.js:720:13)
      at Web3.AbstractWeb3Module (node_modules/web3-core/dist/web3-core.cjs.js:27:51)
      at new Web3 (node_modules/web3/dist/web3.cjs.js:30:68)
      at getWeb3 (test/utils/helpers.js:25:49)
      at Object.<anonymous> (test/blocks.test.js:11:12)

  ● read from blocks › by polling › polls for block headers

    TypeError: Cannot read property 'eth' of undefined

       9 | export function createBlockChannel ({ drizzle, web3, syncAlways }) {
      10 |   return eventChannel(emit => {
    > 11 |     const blockEvents = web3.eth
         |                              ^
      12 |       .subscribe('newBlockHeaders', (error, result) => {
      13 |         if (error) {
      14 |           emit({ type: 'BLOCKS_FAILED', error })

      at eth (src/blocks/blocksSaga.js:11:30)
      at eventChannel (node_modules/redux-saga/lib/internal/channel.js:165:21)
      at createBlockChannel (src/blocks/blocksSaga.js:10:10)
      at Object.<anonymous> (test/blocks.test.js:47:21)

  ● read from blocks › by polling › polls for block headers

    TypeError: Cannot read property 'eth' of undefined

      49 | 
      50 |     test('polls for block headers', async () => {
    > 51 |       await web3.eth.sendTransaction({
         |                  ^
      52 |         from: global.accounts[0],
      53 |         to: global.accounts[1],
      54 |         value: 200

      at eth (test/blocks.test.js:51:18)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
      at new F (node_modules/core-js/library/modules/_export.js:36:28)
      at Object.<anonymous> (node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)

  ● read from blocks › by polling › terminates from block polling

    Please provide an valid Web3 provider

      23 |  * @returns {Object} A Web3 provider sourced from `global.provider`
      24 |  */
    > 25 | const getWeb3 = (provider = global.provider) => new Web3(provider)
         |                                                 ^
      26 | 
      27 | /**
      28 |  * getWeb3Assets deploys a contract on ganache provider

      at ProviderResolver.resolve (node_modules/web3-providers/dist/web3-providers.cjs.js:720:13)
      at Web3.AbstractWeb3Module (node_modules/web3-core/dist/web3-core.cjs.js:27:51)
      at new Web3 (node_modules/web3/dist/web3.cjs.js:30:68)
      at getWeb3 (test/utils/helpers.js:25:49)
      at Object.<anonymous> (test/blocks.test.js:11:12)

  ● read from blocks › by polling › terminates from block polling

    TypeError: Cannot read property 'eth' of undefined

       9 | export function createBlockChannel ({ drizzle, web3, syncAlways }) {
      10 |   return eventChannel(emit => {
    > 11 |     const blockEvents = web3.eth
         |                              ^
      12 |       .subscribe('newBlockHeaders', (error, result) => {
      13 |         if (error) {
      14 |           emit({ type: 'BLOCKS_FAILED', error })

      at eth (src/blocks/blocksSaga.js:11:30)
      at eventChannel (node_modules/redux-saga/lib/internal/channel.js:165:21)
      at createBlockChannel (src/blocks/blocksSaga.js:10:10)
      at Object.<anonymous> (test/blocks.test.js:47:21)

  ● read from blocks › by polling › terminates from block polling

    TypeError: Cannot read property 'take' of undefined

      61 | 
      62 |     test('terminates from block polling', () => {
    > 63 |       blockPoller.take(event => {
         |                   ^
      64 |         expect(event.type).toEqual('@@redux-saga/CHANNEL_END')
      65 |       })
      66 | 

      at Object.take (test/blocks.test.js:63:19)

 FAIL  test/contracts/create.test.js
  ● Creates a contract › with instantiateWeb3Contract Saga

    Please provide an valid Web3 provider

      23 |  * @returns {Object} A Web3 provider sourced from `global.provider`
      24 |  */
    > 25 | const getWeb3 = (provider = global.provider) => new Web3(provider)
         |                                                 ^
      26 | 
      27 | /**
      28 |  * getWeb3Assets deploys a contract on ganache provider

      at ProviderResolver.resolve (node_modules/web3-providers/dist/web3-providers.cjs.js:720:13)
      at Web3.AbstractWeb3Module (node_modules/web3-core/dist/web3-core.cjs.js:27:51)
      at new Web3 (node_modules/web3/dist/web3.cjs.js:30:68)
      at getWeb3 (test/utils/helpers.js:25:49)
      at getWeb3 (test/utils/helpers.js:36:16)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
      at new F (node_modules/core-js/library/modules/_export.js:36:28)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12
      at getWeb3Assets (test/utils/helpers.js:32:7)
      at _callee$ (test/contracts/create.test.js:17:51)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)

  ● Creates a contract › with instantiateWeb3Contract Saga

    TypeError: Cannot read property 'subscribe' of undefined

      35 |     }
      36 | 
    > 37 |     const contractInstance = await runSaga(
         |                                    ^
      38 |       mockedStore,
      39 |       instantiateWeb3Contract,
      40 |       options

      at runSaga (node_modules/redux-saga/lib/internal/runSaga.js:37:35)
      at _callee2$ (test/contracts/create.test.js:37:36)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
      at new F (node_modules/core-js/library/modules/_export.js:36:28)
      at Object.<anonymous> (node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)

  ● Creates a contract › with instantiateContract Saga

    Please provide an valid Web3 provider

      23 |  * @returns {Object} A Web3 provider sourced from `global.provider`
      24 |  */
    > 25 | const getWeb3 = (provider = global.provider) => new Web3(provider)
         |                                                 ^
      26 | 
      27 | /**
      28 |  * getWeb3Assets deploys a contract on ganache provider

      at ProviderResolver.resolve (node_modules/web3-providers/dist/web3-providers.cjs.js:720:13)
      at Web3.AbstractWeb3Module (node_modules/web3-core/dist/web3-core.cjs.js:27:51)
      at new Web3 (node_modules/web3/dist/web3.cjs.js:30:68)
      at getWeb3 (test/utils/helpers.js:25:49)
      at getWeb3 (test/utils/helpers.js:36:16)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
      at new F (node_modules/core-js/library/modules/_export.js:36:28)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12
      at getWeb3Assets (test/utils/helpers.js:32:7)
      at _callee$ (test/contracts/create.test.js:17:51)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)

  ● Creates a contract › with instantiateContract Saga

    TypeError: Cannot read property 'eth' of undefined

      66 | 
      67 |     const web3ContractCreator = jest.fn()
    > 68 |     web3.eth.Contract = web3ContractCreator
         |          ^
      69 | 
      70 |     const contractInstance = await runSaga(
      71 |       mockedStore,

      at eth (test/contracts/create.test.js:68:10)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
      at new F (node_modules/core-js/library/modules/_export.js:36:28)
      at Object.<anonymous> (node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)

 FAIL  test/web3.test.js
  ● Console

    console.error src/web3/web3Saga.js:66
      Error intializing web3:
    console.error src/web3/web3Saga.js:67
      Error: Cannot find injected web3 or valid fallback.
          at initializeWeb3$ (/Users/dorian/projects/gambit/web/drizzle/src/web3/web3Saga.js:62:13)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at next (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:322:27)
          at proc (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:281:3)
          at runSaga (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/runSaga.js:59:33)
          at _callee$ (/Users/dorian/projects/gambit/web/drizzle/test/web3.test.js:15:28)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at step (/Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
          at /Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
          at new Promise (<anonymous>)
          at new F (/Users/dorian/projects/gambit/web/drizzle/node_modules/core-js/library/modules/_export.js:36:28)
          at Object.<anonymous> (/Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)
    console.error src/web3/web3Saga.js:85
      Error fetching network ID:
    console.error src/web3/web3Saga.js:86
      TypeError: Cannot read property 'eth' of undefined
          at eth (/Users/dorian/projects/gambit/web/drizzle/src/web3/web3Saga.js:77:39)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at next (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:322:27)
          at proc (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:281:3)
          at runSaga (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/runSaga.js:59:33)
          at _callee3$ (/Users/dorian/projects/gambit/web/drizzle/test/web3.test.js:33:13)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at step (/Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
          at /Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
          at new Promise (<anonymous>)
          at new F (/Users/dorian/projects/gambit/web/drizzle/node_modules/core-js/library/modules/_export.js:36:28)
          at Object.<anonymous> (/Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)
    console.log src/web3/web3Saga.js:21
      Window Ethereum Defined
    console.error src/web3/web3Saga.js:85
      Error fetching network ID:
    console.error src/web3/web3Saga.js:86
      TypeError: Cannot read property 'eth' of undefined
          at eth (/Users/dorian/projects/gambit/web/drizzle/src/web3/web3Saga.js:77:39)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at next (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:322:27)
          at proc (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:281:3)
          at runSaga (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/runSaga.js:59:33)
          at _callee6$ (/Users/dorian/projects/gambit/web/drizzle/test/web3.test.js:69:13)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at step (/Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
          at /Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
          at new Promise (<anonymous>)
          at new F (/Users/dorian/projects/gambit/web/drizzle/node_modules/core-js/library/modules/_export.js:36:28)
          at Object.<anonymous> (/Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)
    console.log src/web3/web3Saga.js:36
      Window Web3 Undefined
    console.error src/web3/web3Saga.js:66
      Error intializing web3:
    console.error src/web3/web3Saga.js:67
      TypeError: Cannot read property 'currentProvider' of undefined
          at currentProvider (/Users/dorian/projects/gambit/web/drizzle/src/web3/web3Saga.js:39:28)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at next (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:322:27)
          at proc (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:281:3)
          at runSaga (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/runSaga.js:59:33)
          at _callee7$ (/Users/dorian/projects/gambit/web/drizzle/test/web3.test.js:80:28)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at step (/Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
          at /Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
          at new Promise (<anonymous>)
          at new F (/Users/dorian/projects/gambit/web/drizzle/node_modules/core-js/library/modules/_export.js:36:28)
          at Object.<anonymous> (/Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)
    console.error src/web3/web3Saga.js:85
      Error fetching network ID:
    console.error src/web3/web3Saga.js:86
      TypeError: Cannot read property 'eth' of undefined
          at eth (/Users/dorian/projects/gambit/web/drizzle/src/web3/web3Saga.js:77:39)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at next (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:322:27)
          at proc (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:281:3)
          at runSaga (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/runSaga.js:59:33)
          at _callee9$ (/Users/dorian/projects/gambit/web/drizzle/test/web3.test.js:90:13)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at step (/Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
          at /Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
          at new Promise (<anonymous>)
          at new F (/Users/dorian/projects/gambit/web/drizzle/node_modules/core-js/library/modules/_export.js:36:28)
          at Object.<anonymous> (/Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)
    console.log src/web3/web3Saga.js:44
      Trying Fall Back
    console.log src/web3/web3Saga.js:45
      http://127.0.0.1:8545

  ● Loads Web3 › with customProvider › get web3

    expect(received).toEqual(expected)

    Expected value to equal:
      "WEB3_INITIALIZED"
    Received:
      "WEB3_FAILED"

      20 |     test('get web3', async () => {
      21 |       // First action dispatched
    > 22 |       expect(dispatchedActions[0].type).toEqual(Action.WEB3_INITIALIZED)
         |                                         ^
      23 | 
      24 |       // is it a Web3 object?
      25 |       expect(resolvedWeb3).toHaveProperty('currentProvider')

      at toEqual (test/web3.test.js:22:41)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
      at new F (node_modules/core-js/library/modules/_export.js:36:28)
      at Object.<anonymous> (node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)

  ● Loads Web3 › with customProvider › get network ID

    expect(received).toEqual(expected)

    Expected value to equal:
      6777
    Received:
      undefined

    Difference:

      Comparing two different types of values. Expected number but received undefined.

      34 | 
      35 |       // Second action dispatched
    > 36 |       expect(dispatchedActions[1].networkId).toEqual(global.defaultNetworkId)
         |                                              ^
      37 |     })
      38 |   })
      39 | 

      at toEqual (test/web3.test.js:36:46)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:28:13

  ● Loads Web3 › with ethereum › get web3

    TypeError: Cannot read property 'fn' of undefined

      54 | 
      55 |     test('get web3', async () => {
    > 56 |       expect(gen.next().value.CALL.fn).toBe(mockedEthereumEnable)
         |              ^
      57 |       expect(gen.next().value.PUT.action.type).toBe(Action.WEB3_INITIALIZED)
      58 | 
      59 |       // is it a Web3 object?

      at _callee5$ (test/web3.test.js:56:14)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
      at new F (node_modules/core-js/library/modules/_export.js:36:28)
      at Object.<anonymous> (node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)

  ● Loads Web3 › with ethereum › get network ID

    expect(received).toEqual(expected)

    Expected value to equal:
      6777
    Received:
      undefined

    Difference:

      Comparing two different types of values. Expected number but received undefined.

      68 |     test('get network ID', async () => {
      69 |       await runSaga(mockedStore, getNetworkId, { web3: resolvedWeb3 }).done
    > 70 |       expect(dispatchedActions[0].networkId).toEqual(global.defaultNetworkId)
         |                                              ^
      71 |     })
      72 |   })
      73 | 

      at toEqual (test/web3.test.js:70:46)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:28:13

  ● Loads Web3 › with injected web3 › get web3

    expect(received).toEqual(expected)

    Expected value to equal:
      "WEB3_INITIALIZED"
    Received:
      "WEB3_FAILED"

      84 |     test('get web3', async () => {
      85 |       // First action dispatched
    > 86 |       expect(dispatchedActions[0].type).toEqual(Action.WEB3_INITIALIZED)
         |                                         ^
      87 |     })
      88 | 
      89 |     test('get network ID', async () => {

      at toEqual (test/web3.test.js:86:41)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
      at new F (node_modules/core-js/library/modules/_export.js:36:28)
      at Object.<anonymous> (node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)

  ● Loads Web3 › with injected web3 › get network ID

    expect(received).toEqual(expected)

    Expected value to equal:
      6777
    Received:
      undefined

    Difference:

      Comparing two different types of values. Expected number but received undefined.

      91 | 
      92 |       // Second action dispatched
    > 93 |       expect(dispatchedActions[1].networkId).toEqual(global.defaultNetworkId)
         |                                              ^
      94 | 
      95 |       // is it a Web3 object?
      96 |       expect(resolvedWeb3).toHaveProperty('currentProvider')

      at toEqual (test/web3.test.js:93:46)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:28:13

  ● Loads Web3 › with websocket fallback web3 › get web3

    TypeError: Duplicated method constructor. This method is defined as RPC call and as Object method.

      127 | 
      128 |       // is it a Web3 object?
    > 129 |       expect(resolvedWeb3).toHaveProperty('currentProvider')
          |                            ^
      130 |       expect(resolvedWeb3).toHaveProperty('BatchRequest')
      131 |       expect(resolvedWeb3).toHaveProperty('version')
      132 |       expect(resolvedWeb3).toHaveProperty('utils')

      at Object.get (node_modules/web3-core-method/dist/web3-core-method.cjs.js:231:17)
      at Object.<anonymous>.exports.test.val [as test] (node_modules/pretty-format/build/plugins/dom_element.js:34:7)
      at findPlugin (node_modules/pretty-format/build/index.js:318:22)
      at printer (node_modules/pretty-format/build/index.js:330:18)
      at printObjectProperties (node_modules/pretty-format/build/collections.js:170:21)
      at printComplexValue (node_modules/pretty-format/build/index.js:270:48)
      at prettyFormat (node_modules/pretty-format/build/index.js:499:10)
      at pass (node_modules/expect/build/matchers.js:617:54)
      at getMessage (node_modules/expect/build/index.js:143:15)
      at processResult (node_modules/expect/build/index.js:267:25)
      at Object.throwingMatcher [as toHaveProperty] (node_modules/expect/build/index.js:331:16)
      at toHaveProperty (test/web3.test.js:129:28)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)

 FAIL  test/accountBalances.test.js
  ● Console

    console.error src/accountBalances/accountBalancesSaga.js:20
      Error fetching account 0x8aDB46251E9cd45b5027501766531825C04a2E06 balance:
    console.error src/accountBalances/accountBalancesSaga.js:21
      TypeError: Cannot read property 'eth' of undefined
          at getAccountBalances$ (/Users/dorian/projects/gambit/web/drizzle/src/accountBalances/accountBalancesSaga.js:50:42)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at next (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:322:27)
          at currCb (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:399:7)
          at runSelectEffect (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:710:7)
          at runEffect (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:446:761)
          at next (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:326:9)
          at proc (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:281:3)
          at runSaga (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/runSaga.js:59:33)
          at _callee$ (/Users/dorian/projects/gambit/web/drizzle/test/accountBalances.test.js:48:43)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at step (/Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)

  ● Account Balance Saga › Retrieves account balances

    Please provide an valid Web3 provider

      23 |  * @returns {Object} A Web3 provider sourced from `global.provider`
      24 |  */
    > 25 | const getWeb3 = (provider = global.provider) => new Web3(provider)
         |                                                 ^
      26 | 
      27 | /**
      28 |  * getWeb3Assets deploys a contract on ganache provider

      at ProviderResolver.resolve (node_modules/web3-providers/dist/web3-providers.cjs.js:720:13)
      at Web3.AbstractWeb3Module (node_modules/web3-core/dist/web3-core.cjs.js:27:51)
      at new Web3 (node_modules/web3/dist/web3.cjs.js:30:68)
      at getWeb3 (test/utils/helpers.js:25:49)
      at Object.<anonymous> (test/accountBalances.test.js:11:12)

  ● Account Balance Saga › Retrieves account balances

    expect(received).toEqual(expected)

    Expected value to equal:
      "100000000000000000000"
    Received:
      undefined

    Difference:

      Comparing two different types of values. Expected string but received undefined.

      16 | 
      17 |     const expectedBalance = String(1e20) // 100 Eth, defaultBalance
    > 18 |     expect(dispatchedActions[0].accountBalance).toEqual(expectedBalance)
         |                                                 ^
      19 |   })
      20 | })
      21 | 

      at toEqual (test/accountBalances.test.js:18:49)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:28:13

 FAIL  test/accounts.test.js
  ● Console

    console.error src/accounts/accountsSaga.js:22
      Error fetching accounts:
    console.error src/accounts/accountsSaga.js:23
      TypeError: Cannot read property 'eth' of undefined
          at getAccounts$ (/Users/dorian/projects/gambit/web/drizzle/src/accounts/accountsSaga.js:39:42)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at next (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:322:27)
          at proc (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/proc.js:281:3)
          at runSaga (/Users/dorian/projects/gambit/web/drizzle/node_modules/redux-saga/lib/internal/runSaga.js:59:33)
          at _callee$ (/Users/dorian/projects/gambit/web/drizzle/test/accounts.test.js:46:43)
          at tryCatch (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:62:40)
          at Generator.invoke [as _invoke] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:296:22)
          at Generator.prototype.(anonymous function) [as next] (/Users/dorian/projects/gambit/web/drizzle/node_modules/regenerator-runtime/runtime.js:114:21)
          at step (/Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
          at /Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:35:14
          at new Promise (<anonymous>)
          at new F (/Users/dorian/projects/gambit/web/drizzle/node_modules/core-js/library/modules/_export.js:36:28)
          at Object.<anonymous> (/Users/dorian/projects/gambit/web/drizzle/node_modules/babel-runtime/helpers/asyncToGenerator.js:14:12)

  ● Accounts Saga › retrieves Metamask accounts

    Please provide an valid Web3 provider

      23 |  * @returns {Object} A Web3 provider sourced from `global.provider`
      24 |  */
    > 25 | const getWeb3 = (provider = global.provider) => new Web3(provider)
         |                                                 ^
      26 | 
      27 | /**
      28 |  * getWeb3Assets deploys a contract on ganache provider

      at ProviderResolver.resolve (node_modules/web3-providers/dist/web3-providers.cjs.js:720:13)
      at Web3.AbstractWeb3Module (node_modules/web3-core/dist/web3-core.cjs.js:27:51)
      at new Web3 (node_modules/web3/dist/web3.cjs.js:30:68)
      at getWeb3 (test/utils/helpers.js:25:49)
      at Object.<anonymous> (test/accounts.test.js:10:12)

  ● Accounts Saga › retrieves Metamask accounts

    expect(received)[.not].toHaveLength(length)

    Expected value to have a 'length' property that is a number. Received:
      undefined

      13 |   test('retrieves Metamask accounts', async () => {
      14 |     await runSaga(mockedStore, getAccounts, { web3 }).done
    > 15 |     expect(dispatchedActions[0]['accounts']).toHaveLength(
         |                                              ^
      16 |       global.accounts.length
      17 |     )
      18 |   })

      at toHaveLength (test/accounts.test.js:15:46)
      at tryCatch (node_modules/regenerator-runtime/runtime.js:62:40)
      at Generator.invoke [as _invoke] (node_modules/regenerator-runtime/runtime.js:296:22)
      at Generator.prototype.(anonymous function) [as next] (node_modules/regenerator-runtime/runtime.js:114:21)
      at step (node_modules/babel-runtime/helpers/asyncToGenerator.js:17:30)
      at node_modules/babel-runtime/helpers/asyncToGenerator.js:28:13

Test Suites: 5 failed, 5 total
Tests:       15 failed, 1 passed, 16 total
Snapshots:   0 total
Time:        4.956s
Ran all test suites.
npm ERR! Test failed.  See above for more details.
deniss-mbp-2:drizzle dorian$ 
OnlyOneJMJQ commented 5 years ago

This should be fixed in v1.3.3 (locked the web3 version to beta.35)--can you confirm?

dangell7 commented 5 years ago

The problem is that web3 35 doesn’t give transaction receipts when deploying. This issue was fixed in 41. Hence why you need to upgrade to 41. Or maybe I’m the only one with this issue?

dangell7 commented 5 years ago

It was my error from upgrading my repo on accident.