Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
169 commits
Select commit Hold shift + click to select a range
fbfb573
Add release build
atoulme Nov 25, 2018
a44fb28
Merge branch 'master' into release_build
acravenho Nov 27, 2018
614edcd
Merge branch 'master' into release_build
acravenho Nov 27, 2018
454d4a5
adapt the token holders controller and template to work async
GustavoSantosFe Nov 27, 2018
7ef0c40
adapt the tests for the async loading
GustavoSantosFe Nov 27, 2018
a345bb6
gettext
GustavoSantosFe Nov 27, 2018
af62934
Update npm dependencies
amandasposito Nov 28, 2018
39da900
Merge pull request #1148 from poanetwork/ams-fix-js-package-dependency
amandasposito Nov 28, 2018
49675aa
Merge branch 'master' into gsf-more-async-more-loading-now-available-…
acravenho Nov 28, 2018
a3636c8
Merge pull request #1144 from poanetwork/gsf-more-async-more-loading-…
GustavoSantosFe Nov 28, 2018
f0de6f4
Handles Ganache transaction input bug
sabondano Nov 27, 2018
3c0c96d
Merge pull request #1143 from poanetwork/sa-ganache-input-error
sabondano Nov 29, 2018
fe2fb08
Merge branch 'master' into release_build
acravenho Nov 29, 2018
1bdb8c1
Ganache ignores internal transactions
sabondano Nov 30, 2018
26c4729
Remove references from pending transactions feature
feliperenan Nov 29, 2018
d61a066
Merge pull request #1159 from poanetwork/frg-remove-pending-transacti…
feliperenan Nov 30, 2018
39b6ecc
Separate schema and data migration for EIP-6
KronicDeth Nov 16, 2018
6ec9afb
Gradual migration support for call_has_call_type, call_has_input, and…
KronicDeth Nov 16, 2018
ae297e5
Merge pull request #1111 from poanetwork/1109
KronicDeth Nov 30, 2018
dd382f6
add highlightjs to the project
GustavoSantosFe Nov 29, 2018
571f5d4
include and start highlight js and add css
GustavoSantosFe Nov 29, 2018
0eb912a
new function to help print line numbers on the page
GustavoSantosFe Nov 29, 2018
e90e1d4
highlight, number the lines and print correctly the contract code
GustavoSantosFe Nov 29, 2018
ab53b68
do not highlight other code boxes
GustavoSantosFe Nov 29, 2018
9845ddd
gettext
GustavoSantosFe Nov 30, 2018
b0abe83
Merge branch 'master' into release_build
acravenho Nov 30, 2018
547dbfe
Merge pull request #1157 from poanetwork/gsf-fix-contract-code-display
GustavoSantosFe Nov 30, 2018
0b1c932
Merge branch 'master' into release_build
acravenho Nov 30, 2018
67e1dba
Merge pull request #1131 from atoulme/release_build
acravenho Nov 30, 2018
b2b5fa5
Refactor async listing load to use redux
Nov 29, 2018
fa05e03
Fix pages broken by previous commit
Nov 29, 2018
285c65c
Add tests to the lib
Nov 30, 2018
0a2b016
Merge pull request #1154 from poanetwork/wsa-async-load-with-redux
feliperenan Dec 3, 2018
d4feeff
Fix pagination on inventory tab at Token's page
feliperenan Nov 30, 2018
3779398
Merge pull request #1164 from poanetwork/frg-fix-pagination-at-invent…
feliperenan Dec 3, 2018
ed3a621
Refactor controller and template for async load
Dec 3, 2018
4ec8ba3
Merge branch 'master' into sa-ganache-ignore-internal-transactions
acravenho Dec 3, 2018
849e791
Merge pull request #1160 from poanetwork/sa-ganache-ignore-internal-t…
acravenho Dec 3, 2018
5d12613
feat: support tracing via spandex
zachdaniel Nov 28, 2018
ed31a3c
Merge pull request #1150 from poanetwork/support-tracing-via-spandex
KronicDeth Dec 3, 2018
24079bb
GraphQL support to get internal transactions
sabondano Nov 16, 2018
f49fbbf
Refactor JS for async load
Dec 3, 2018
e0d4221
Gettext
Dec 3, 2018
31792cd
Merge pull request #1153 from poanetwork/sa-graphql-internal-transact…
acravenho Dec 3, 2018
74c4967
Merge branch 'master' into wsa-async-load-blocks-validated
acravenho Dec 3, 2018
8c54cbe
Add CORSPlug
sabondano Dec 3, 2018
4236b39
Merge pull request #1167 from poanetwork/wsa-async-load-blocks-validated
acravenho Dec 3, 2018
d147e94
Remove infinite scroll in address transactions page
fvictorio Nov 26, 2018
0f245e1
Remove nextPageUrl from state
fvictorio Nov 27, 2018
c79c0f7
Remove action related to infinite scroll from reducer
fvictorio Nov 27, 2018
c3eec56
Make transactions tab at Address's page async
feliperenan Nov 27, 2018
87579df
Fix controller tests
feliperenan Nov 30, 2018
e993356
Refactor address.js to use async_load_listing redux
feliperenan Nov 30, 2018
fb27c08
Generate gettext
feliperenan Dec 4, 2018
70d4ac8
Merge branch 'master' into sa-add-cors
acravenho Dec 4, 2018
37b1f91
Merge pull request #1137 from fvictorio/1101-remove-infinite-scroll-t…
acravenho Dec 4, 2018
ed93bfb
Fix randomly failing test
fvictorio Dec 4, 2018
3259b65
Merge branch 'master' into sa-add-cors
acravenho Dec 4, 2018
b078ed7
Create module to interact with coingecko api.
Oct 23, 2018
15337d4
Move duplicate functionality into `source.ex`
Oct 23, 2018
42504ac
Create tests for CoinGecko api.
Oct 23, 2018
2a603be
Merge with master.
Nov 15, 2018
582345c
Create tests for new dependency injection model.
Nov 19, 2018
fd30125
Merge pull request #1173 from poanetwork/sa-add-cors
acravenho Dec 4, 2018
ad606e4
Conform to code review.
Dec 4, 2018
845b399
Add a cache to count the addresses with balance > 0.
amandasposito Dec 3, 2018
7eef405
Add BlockValidationCounter config to disable it in test env.
amandasposito Dec 4, 2018
9d620f2
Merge pull request #1170 from poanetwork/ams-address-count
amandasposito Dec 4, 2018
bbe5f0a
remove skips
GustavoSantosFe Dec 3, 2018
86b6336
add missing selector
GustavoSantosFe Dec 4, 2018
0d65bbd
move internal transactions real time to its own file and use redux fo…
GustavoSantosFe Dec 4, 2018
04ae8cf
fix: match more explicitly on ABI decoding result
zachdaniel Dec 3, 2018
e707117
Allows other sites to open blockscout in iframe
sabondano Dec 3, 2018
fa09f39
GraphQL API token_transfers query
sabondano Dec 4, 2018
65e2592
Only assert that last token name is null
fvictorio Dec 5, 2018
d2c4415
Merge branch 'master' into fix-random-failing-test
Dec 5, 2018
5017347
change the test file to exs
GustavoSantosFe Dec 5, 2018
c904907
Merge pull request #1168 from poanetwork/sa-allow-iframes
acravenho Dec 5, 2018
17c1ba6
Merge branch 'master' into gsf-rename-test-file-to-exs
acravenho Dec 5, 2018
d8ffff1
Merge pull request #1179 from poanetwork/gsf-rename-test-file-to-exs
acravenho Dec 5, 2018
37062d3
Merge branch 'master' into sa-graphql-token-transfers-query-2
acravenho Dec 5, 2018
e7f7bfd
Merge pull request #1176 from poanetwork/sa-graphql-token-transfers-q…
acravenho Dec 5, 2018
265955c
Merge branch 'master' into fix-random-failing-test
acravenho Dec 5, 2018
fa7d87c
Merge pull request #1175 from poanetwork/fix-random-failing-test
acravenho Dec 5, 2018
f56e93f
Merge branch 'master' into gsf-unskip-skipped-tests-and-fix-them
acravenho Dec 5, 2018
c78131c
Merge pull request #1169 from poanetwork/gsf-unskip-skipped-tests-and…
acravenho Dec 5, 2018
b8d9cbb
Merge branch 'master' into fix-event-decoding-crash
acravenho Dec 5, 2018
4e93979
Merge pull request #1172 from poanetwork/fix-event-decoding-crash
acravenho Dec 5, 2018
b717371
Add primary names to the top accounts page
natlg Dec 5, 2018
01e19cb
Fix test
natlg Dec 5, 2018
dd23bcb
Merge pull request #1178 from poanetwork/add-primary-names-to-account…
acravenho Dec 6, 2018
f9ea258
Refactor transactions page
feliperenan Dec 5, 2018
d103412
Generate gettext
feliperenan Dec 6, 2018
1eb98c7
Merge pull request #1180 from poanetwork/frg-refactor-transactions-list
feliperenan Dec 6, 2018
540ddb2
prepare controller and template for async loading
GustavoSantosFe Dec 6, 2018
63328eb
change the redux page to use async load
GustavoSantosFe Dec 6, 2018
0a8a6d9
fix the tests
GustavoSantosFe Dec 6, 2018
8585a1d
gettext
GustavoSantosFe Dec 7, 2018
6df55e0
Merge pull request #1182 from poanetwork/gsf-async-pending-transactions
GustavoSantosFe Dec 7, 2018
c9130df
Use async load and simple pagination in blocks page
fvictorio Dec 6, 2018
ba43f5c
Use async load and simple pagination in uncles and reorgs pages
fvictorio Dec 6, 2018
a31c41f
Generate gettext
fvictorio Dec 7, 2018
4701dc0
Merge pull request #1162 from poanetwork/1145-async-load-blocks-list
acravenho Dec 7, 2018
b23a244
Merge branch 'master' into 944-integrate-coingecko-api
Dec 10, 2018
7bce2c0
Merge pull request #969 from Lokraan/944-integrate-coingecko-api
acravenho Dec 10, 2018
6966f01
Add coin balance history tab to address page
fvictorio Dec 7, 2018
3f3b064
Generate gettext
fvictorio Dec 7, 2018
793b1f7
Merge pull request #1008 from fvictorio/add-balance-history
acravenho Dec 10, 2018
f8797a2
Fix realtime address balance update
feliperenan Dec 7, 2018
5e79505
Merge pull request #1191 from poanetwork/frg-fix-realtime-address-bal…
feliperenan Dec 10, 2018
0204d08
Fix realtime indexer's 'no skips prevention' bug
sabondano Dec 7, 2018
c511b1f
Merge pull request #1190 from poanetwork/sa-1189-realtime-no-skips-bug
acravenho Dec 11, 2018
fc2985d
class to truncate excessivelly long token names
GustavoSantosFe Dec 10, 2018
efd170c
Merge pull request #1196 from poanetwork/gsf-overlapping-text-token-t…
acravenho Dec 11, 2018
b18b491
Fix blocks validated page to show all tabs
feliperenan Dec 11, 2018
e7624b7
Decrease tabs padding to have more space for tabs
feliperenan Dec 11, 2018
04a0100
Generate gettext
feliperenan Dec 11, 2018
6d27f57
Merge pull request #1205 from poanetwork/frg-fix-blocks-validated-tab
feliperenan Dec 11, 2018
fca1f15
Fix displayed address length
natlg Dec 11, 2018
a1f3f1f
Explorer.Repo.stream_in_transaction
KronicDeth Nov 27, 2018
e99850c
Stream token transfers into ETS table
KronicDeth Nov 27, 2018
e0921ff
Stream block validations into ETS table
KronicDeth Nov 27, 2018
4d778f0
Stream token holders into ETS table
KronicDeth Nov 27, 2018
02bbd55
Merge pull request #1209 from poanetwork/ets-streaming
KronicDeth Dec 12, 2018
c7d614e
Include date in addition to time in log format
KronicDeth Dec 12, 2018
2a64b4e
Merge pull request #1210 from poanetwork/log-date
KronicDeth Dec 12, 2018
532a0a9
Fix realtime indexer's 'no skips prevention' bug
sabondano Dec 7, 2018
c762719
Ensures consensus is valid for parent blocks
sabondano Dec 10, 2018
47169d1
Merge pull request #1194 from poanetwork/sa-1181-block-consensus-ensurer
sabondano Dec 12, 2018
fed7d30
Include fetcher in logger metadata
KronicDeth Dec 12, 2018
778ed31
Merge pull request #1211 from poanetwork/logger-metadata
KronicDeth Dec 12, 2018
be36adb
Improve token balances fetching for specific addresses
fvictorio Dec 10, 2018
2a795af
Avoid repeated request for token balances
fvictorio Dec 10, 2018
decf8da
Merge pull request #1197 from poanetwork/1026-improve-token-balances
acravenho Dec 12, 2018
607be27
Remove unused function from Transaction module.
amandasposito Dec 10, 2018
4833c6c
Fix Address Trasaction query
amandasposito Dec 6, 2018
0eafa6a
Merge pull request #1186 from poanetwork/ams-fix-address-transactions…
amandasposito Dec 12, 2018
ef5ad0d
Merge branch 'master' into fix-displayed-address-length
acravenho Dec 12, 2018
86b9a6a
Add docs to redux helpers
feliperenan Dec 12, 2018
3ce8327
Improve docs in Address.TokenBalance and Address.CurrentTokenBalance …
feliperenan Dec 12, 2018
24c5e27
Update README including frond-end section
feliperenan Dec 12, 2018
9153d07
Merge pull request #1207 from poanetwork/frg-add-docs-to-redux-helpers
feliperenan Dec 12, 2018
0243726
Move block number out of prose and into metadata
KronicDeth Dec 12, 2018
2010e90
Move block range out of prose and into metadata
KronicDeth Dec 12, 2018
63e646a
Move count out of prose and into metadata
KronicDeth Dec 12, 2018
ac35c46
Move error_count out of prose and into metadata
KronicDeth Dec 12, 2018
1af8f89
Move step out of prose and into metadata
KronicDeth Dec 12, 2018
2569d25
Move missing_block_range_count and missing_block_count out of prose
KronicDeth Dec 12, 2018
65197f5
Add shrunk to metadata
KronicDeth Dec 12, 2018
2fdd5bb
Merge pull request #1214 from poanetwork/metadata-instead-of-prose
acravenho Dec 12, 2018
a919502
Merge branch 'master' into fix-displayed-address-length
acravenho Dec 12, 2018
a247b47
Merge pull request #1206 from poanetwork/fix-displayed-address-length
acravenho Dec 12, 2018
30e0ac4
Log timeout in PendingTransaction fetcher instead of crashing
KronicDeth Dec 12, 2018
44e4f17
Merge pull request #1218 from poanetwork/1216
KronicDeth Dec 13, 2018
14c17cb
Retry retried_entries for uncles
KronicDeth Dec 13, 2018
5a0f020
Don't log errors when uncles aren't found
KronicDeth Dec 13, 2018
54f9e1b
Merge pull request #1222 from poanetwork/1221
KronicDeth Dec 13, 2018
e4902fc
Fix picking wrong clause for fetch_token_balances_from_blockchain
KronicDeth Dec 12, 2018
f7b8912
Merge pull request #1217 from poanetwork/1215
KronicDeth Dec 13, 2018
c978b61
Don't log when queue is unavailable
KronicDeth Dec 13, 2018
6a0f625
Port fix for InvalidConsensus to Uncataloged
KronicDeth Dec 13, 2018
17292ad
Merge pull request #1224 from poanetwork/1223
KronicDeth Dec 13, 2018
23bd2b0
Rename block_rewards to emission_rewards
Dec 10, 2018
a754a72
Add block_reward import
Dec 10, 2018
8d3d26d
Add missing dependencies to ethereum_jsonrpc
Dec 11, 2018
0a430d9
Update FetchedBeneficiary typespec
Dec 11, 2018
512511a
Add better test coverage
Dec 12, 2018
e1b3d43
Add doc to FetchedBeneficiaries
Dec 12, 2018
48fe3a4
Merge pull request #1184 from poanetwork/wsa-save-emission-reward-dat…
w-sanches Dec 13, 2018
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
30 changes: 30 additions & 0 deletions .circleci/config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -122,6 +122,7 @@ jobs:
- mix.exs
- mix.lock
- appspec.yml
- rel
check_formatted:
docker:
# Ensure .tool-versions matches
Expand Down Expand Up @@ -279,6 +280,32 @@ jobs:
name: Jest
command: ./node_modules/.bin/jest
working_directory: apps/block_scout_web/assets
release:
docker:
# Ensure .tool-versions matches
- image: circleci/elixir:1.7.2
environment:
MIX_ENV: prod

working_directory: ~/app

steps:
- attach_workspace:
at: .

- run: mix local.hex --force
- run: mix local.rebar --force
- run: mix release --verbose --env prod
- run:
name: Collecting artifacts
command: |
find -name 'blockscout.tar.gz' -exec sh -c 'mkdir -p ci_artifact && cp "$@" ci_artifact/ci_artifact_blockscout.tar.gz' _ {} +
when: always

- store_artifacts:
name: Uploading CI artifacts
path: ci_artifact/ci_artifact_blockscout.tar.gz
destination: ci_artifact_blockscout.tar.gz
sobelow:
docker:
# Ensure .tool-versions matches
Expand Down Expand Up @@ -561,6 +588,9 @@ workflows:
- jest:
requires:
- build
- release:
requires:
- build
- sobelow:
requires:
- build
Expand Down
5 changes: 3 additions & 2 deletions .credo.exs
Original file line number Diff line number Diff line change
Expand Up @@ -75,8 +75,9 @@
# Priority values are: `low, normal, high, higher`
#
{Credo.Check.Design.AliasUsage,
excluded_namespaces: ~w(Block Blocks Import Socket Task),
excluded_lastnames: ~w(Address DateTime Exporter Fetcher Full Instrumenter Monitor Name Number Repo Time Unit),
excluded_namespaces: ~w(Block Blocks Import Socket SpandexDatadog Task),
excluded_lastnames:
~w(Address DateTime Exporter Fetcher Full Instrumenter Logger Monitor Name Number Repo Spec Time Unit),
priority: :low},

# For some checks, you can also set other parameters
Expand Down
45 changes: 44 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -7,7 +7,7 @@
<h1 align="center">BlockScout</h1>
<p align="center">Blockchain Explorer for inspecting and analyzing EVM Chains.</p>
<div align="center">

[![CircleCI](https://circleci.com/gh/poanetwork/blockscout.svg?style=svg&circle-token=f8823a3d0090407c11f87028c73015a331dbf604)](https://circleci.com/gh/poanetwork/blockscout) [![Coverage Status](https://coveralls.io/repos/github/poanetwork/blockscout/badge.svg?branch=master)](https://coveralls.io/github/poanetwork/blockscout?branch=master) [![Join the chat at https://gitter.im/poanetwork/blockscout](https://badges.gitter.im/poanetwork/blockscout.svg)](https://gitter.im/poanetwork/blockscout?utm_source=badge&utm_medium=badge&utm_campaign=pr-badge&utm_content=badge)

</div>
Expand Down Expand Up @@ -245,6 +245,22 @@ To view Modules and API Reference documentation:
2. View the generated docs.
`open doc/index.html`

## Front-end

### Javascript

All Javascript files are under [apps/block_scout_web/assets/js](https://github.com/poanetwork/blockscout/tree/master/apps/block_scout_web/assets/js) and the main file is [app.js](https://github.com/poanetwork/blockscout/blob/master/apps/block_scout_web/assets/js/app.js). This file imports all javascript used in the application. If you want to create a new JS file consider creating into [/js/pages](https://github.com/poanetwork/blockscout/tree/master/apps/block_scout_web/assets/js/pages) or [/js/lib](https://github.com/poanetwork/blockscout/tree/master/apps/block_scout_web/assets/js/lib), as follows:

#### js/lib
This folder contains all scripts that can be reused in any page or can be used as a helper to some component.

#### js/pages
This folder contains the scripts that are specific for some page.

#### Redux
This project uses Redux to control the state in some pages. There are pages that have things happening in real-time thanks to the Phoenix channels, e.g. Address page, so the page state changes a lot depending on which events it is listening. The redux is also used to load some contents asynchronous, see [async_listing_load.js](https://github.com/poanetwork/blockscout/blob/master/apps/block_scout_web/assets/js/lib/async_listing_load.js).

To understand how to build new pages that need redux in this project, see the [redux_helpers.js](https://github.com/poanetwork/blockscout/blob/master/apps/block_scout_web/assets/js/lib/redux_helpers.js)

## Internationalization

Expand Down Expand Up @@ -283,6 +299,33 @@ BlockScout is setup to export [Prometheus](https://prometheus.io/) metrics at `/
3. Click "Load"
6. View the dashboards. (You will need to click-around and use BlockScout for the web-related metrics to show up.)

## Tracing

Blockscout supports tracing via
[Spandex](http://git@github.com:spandex-project/spandex.git). Each application
has its own tracer, that is configured internally to that application. In order
to enable it, visit each application's `config/<env>.ex` and update its tracer
configuration to change `disabled?: true` to `disabled?: false`. Do this for
each application you'd like included in your trace data.

Currently, only [Datadog](https://www.datadoghq.com/) is supported as a
tracing backend, but more will be added soon.

### DataDog

If you would like to use DataDog, after enabling `Spandex`, set
`"DATADOG_HOST"` and `"DATADOG_PORT"` environment variables to the
host/port that your Datadog agent is running on. For more information on
Datadog and the Datadog agent, see their
[documentation](https://docs.datadoghq.com/).

### Other

If you want to use a different backend, remove the
`SpandexDatadog.ApiServer` `Supervisor.child_spec` from
`Explorer.Application` and follow any instructions provided in `Spandex`
for setting up that backend.

## Memory Usage

The work queues for building the index of all blocks, balances (coin and token), and internal transactions can grow quite large. By default, the soft-limit is 1 GiB, which can be changed in `apps/indexer/config/config.exs`:
Expand Down
80 changes: 80 additions & 0 deletions apps/block_scout_web/assets/__tests__/lib/async_listing_load.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,80 @@
import { asyncReducer, asyncInitialState } from '../../js/lib/async_listing_load'

describe('ELEMENTS_LOAD', () => {
test('sets only nextPagePath and ignores other keys', () => {
const state = Object.assign({}, asyncInitialState)
const action = { type: 'ELEMENTS_LOAD', nextPagePath: 'set', foo: 1 }
const output = asyncReducer(state, action)

expect(output.foo).not.toEqual(1)
expect(output.nextPagePath).toEqual('set')
})
})

describe('ADD_ITEM_KEY', () => {
test('sets itemKey to what was passed in the action', () => {
const expectedItemKey = 'expected.Key'

const state = Object.assign({}, asyncInitialState)
const action = { type: 'ADD_ITEM_KEY', itemKey: expectedItemKey }
const output = asyncReducer(state, action)

expect(output.itemKey).toEqual(expectedItemKey)
})
})

describe('START_REQUEST', () => {
test('sets loading status to true', () => {
const state = Object.assign({}, asyncInitialState, { loading: false })
const action = { type: 'START_REQUEST' }
const output = asyncReducer(state, action)

expect(output.loading).toEqual(true)
})
})

describe('REQUEST_ERROR', () => {
test('sets requestError to true', () => {
const state = Object.assign({}, asyncInitialState, { requestError: false })
const action = { type: 'REQUEST_ERROR' }
const output = asyncReducer(state, action)

expect(output.requestError).toEqual(true)
})
})

describe('FINISH_REQUEST', () => {
test('sets loading status to false', () => {
const state = Object.assign({}, asyncInitialState, {
loading: true,
loadingFirstPage: true
})
const action = { type: 'FINISH_REQUEST' }
const output = asyncReducer(state, action)

expect(output.loading).toEqual(false)
expect(output.loadingFirstPage).toEqual(false)
})
})

describe('ITEMS_FETCHED', () => {
test('sets the items to what was passed in the action', () => {
const expectedItems = [1, 2, 3]

const state = Object.assign({}, asyncInitialState)
const action = { type: 'ITEMS_FETCHED', items: expectedItems }
const output = asyncReducer(state, action)

expect(output.items).toEqual(expectedItems)
})
})

describe('NAVIGATE_TO_OLDER', () => {
test('sets beyondPageOne to true', () => {
const state = Object.assign({}, asyncInitialState, { beyondPageOne: false })
const action = { type: 'NAVIGATE_TO_OLDER' }
const output = asyncReducer(state, action)

expect(output.beyondPageOne).toEqual(true)
})
})
Loading