Sentry e2e test (#15715)
parent
341f761dd7
commit
fe78890dd2
@ -0,0 +1,67 @@ |
||||
const { strict: assert } = require('assert'); |
||||
const { convertToHexValue, withFixtures } = require('../helpers'); |
||||
|
||||
describe('Sentry errors', function () { |
||||
async function mockSegment(mockServer) { |
||||
mockServer.reset(); |
||||
await mockServer.forAnyRequest().thenPassThrough(); |
||||
return await mockServer |
||||
.forPost('https://sentry.io/api/0000000/store/') |
||||
.thenCallback(() => { |
||||
return { |
||||
statusCode: 200, |
||||
json: {}, |
||||
}; |
||||
}); |
||||
} |
||||
const ganacheOptions = { |
||||
accounts: [ |
||||
{ |
||||
secretKey: |
||||
'0x7C9529A67102755B7E6102D6D950AC5D5863C98713805CEC576B945B15B71EAC', |
||||
balance: convertToHexValue(25000000000000000000), |
||||
}, |
||||
], |
||||
}; |
||||
it('should send error events', async function () { |
||||
await withFixtures( |
||||
{ |
||||
fixtures: 'metrics-enabled', |
||||
ganacheOptions, |
||||
title: this.test.title, |
||||
failOnConsoleError: false, |
||||
}, |
||||
async ({ driver, mockServer }) => { |
||||
const mockedEndpoint = await mockSegment(mockServer); |
||||
await driver.navigate(); |
||||
await driver.fill('#password', 'correct horse battery staple'); |
||||
await driver.press('#password', driver.Key.ENTER); |
||||
// Trigger error
|
||||
await driver.clickElement('[data-testid="eth-overview-send"]'); |
||||
await driver.fill( |
||||
'input[placeholder="Search, public address (0x), or ENS"]', |
||||
'0x2f318C334780961FB129D2a6c30D0763d9a5C970', |
||||
); |
||||
await driver.fill('input[placeholder="0"]', `-01`); |
||||
// Wait for Sentry request
|
||||
await driver.wait(async () => { |
||||
const isPending = await mockedEndpoint.isPending(); |
||||
return isPending === false; |
||||
}, 10000); |
||||
const [mockedRequest] = await mockedEndpoint.getSeenRequests(); |
||||
const mockJsonBody = mockedRequest.body.json; |
||||
const { level, extra } = mockJsonBody; |
||||
const [{ type, value }] = mockJsonBody.exception.values; |
||||
const { participateInMetaMetrics } = extra.appState.store.metamask; |
||||
// Verify request
|
||||
assert.equal(type, 'BigNumber Error'); |
||||
assert.equal( |
||||
value, |
||||
'new BigNumber() not a base 16 number: 0x-de0b6b3a7640000', |
||||
); |
||||
assert.equal(level, 'error'); |
||||
assert.equal(participateInMetaMetrics, true); |
||||
}, |
||||
); |
||||
}); |
||||
}); |
Loading…
Reference in new issue