проблема при проверке прочности - PullRequest
0 голосов
/ 03 июля 2018
const assert = require('assert');
const ganache = require('ganache-cli');
const Web3 = require('web3');
const web3 = new Web3(ganache.provider());
const { interface, bytecode } = require('../compile');

let accounts;
let inbox;

beforeEach(async () => {
  // Get a list of all accounts
  accounts = await web3.eth.getAccounts();

  // Use one of those accounts to deploy
  // the contract
  inbox = await new web3.eth.Contract(JSON.parse(interface))
    .deploy({
      data: bytecode,
      arguments: ['Hi there!']
    })
    .send({ from: accounts[0], gas: '1000000' });
});

describe('Inbox', () => {
    it('deploys a contract', () => {
    assert.ok(inbox.options.address);
  });

  it('has a default message', async () => {
    const message = await inbox.methods.message().call();
    assert.equal(message, 'Hi there!');
  });

  it('can change the message', async () => {
    await inbox.methods.setMessage('bye').send({ from: accounts[0] });
    const message = await inbox.methods.message().call();
    assert.equal(message, 'bye');
  });
});

после выполнения вышеуказанного кода я продолжаю получать следующую ошибку

inbox@1.0.0 test C: \ Users \ user \ Documents \ inbox

Мокко

Входящие 1) «перед каждым» зацепка за «развертывание контракта»

0 прохождение (98мс) 1 ошибка

1) «перед каждым» зацепка за «развертывание контракта»: SyntaxError: неожиданный токен u в JSON в позиции 0 в JSON.parse () at Context.beforeEach (test \ inbox.test.js: 16: 44) в

нпм ERR! код ELIFECYCLE нпм ERR! Errno 1 нпм ERR! inbox@1.0.0 test: mocha нпм ERR! Статус выхода 1 нпм ERR! нпм ERR! Ошибка в тестовом скрипте inbox@1.0.0. нпм ERR! Это, вероятно, не проблема с npm. Скорее всего, выше вывод журнала.

нпм ERR! Полный журнал этого прогона можно найти в: нпм ERR! C: \ Users \ пользователь \ AppData \ Roaming \ NPM-cache_logs \ 2018-07-03T13_17_54_895Z-debug.log

C: \ Users \ пользователь \ Documents \ Входящие \ тест>

1 Ответ

0 голосов
/ 08 января 2019

Когда я изменил кодировку с 'UTF-8' на 'utf8' в моем файле compile.js, это сработало.

Мой файл compile.js выглядит так

const path = require('path'); //for crossplatform
const fs = require('fs'); //file system
const solc = require('solc');

const inboxPath = path.resolve(__dirname, 'contracts', 'Inbox.sol');
const source = fs.readFileSync(inboxPath, 'utf8'); //change to utf8 to UTF-8

module.exports = solc.compile(source, 1).contracts[':Inbox'];
...