Nabarun Gogoi
a6deed9c27
* Fix block processing during chain reorg * Add new method in test dummy indexer * Add missing semicolon |
||
---|---|---|
.. | ||
assembly | ||
bin | ||
environments | ||
src | ||
test | ||
.env.example | ||
.eslintignore | ||
.eslintrc.json | ||
.gitignore | ||
.mocharc.yml | ||
.npmignore | ||
asconfig.json | ||
hardhat.config.ts | ||
ipld-demo.md | ||
package.json | ||
README.md | ||
tsconfig.json |
graph-node
Test
-
Run
yarn
to install all dependencies. -
Create .env file
$ cp .env.example .env
-
Run
yarn build:example
to build the wasm files. -
Run
yarn test
.
Run
-
Compare query results from two different GQL endpoints:
-
In a config file (sample:
environments/compare-cli-config.toml
):-
Specify the two GQL endpoints in the endpoints config.
-
Specify the query directory in queries config or pass as an arg. to the CLI.
-
Example:
[endpoints] gqlEndpoint1 = "http://localhost:8000/subgraphs/name/example1" gqlEndpoint2 = "http://localhost:3008/graphql" [queries] queryDir = "../graph-test-watcher/src/gql/queries"
-
-
Fire a query and get the diff of the results from the two GQL endpoints:
./bin/compare-entity --config-file <config-file-path> --query-dir [query-dir] --query-name <query-name> --block-hash <block-hash> --entity-id <entity-id> --raw-json [true | false]
config-file
(alias:cf
): Configuration file path (toml) (required).query-dir
(alias:qf
): Path to queries directory (defualt: taken from the config file).query-name
(alias:q
): Query to be fired (required).block-hash
(alias:b
): Block hash (required).entity-id
(alias:i
): Entity Id (required).raw-json
(alias:j
): Whether to print out a raw diff object (default:false
).
Example:
```bash ./bin/compare-entity --config-file environments/compare-cli-config.toml --query-name author --block-hash 0xceed7ee9d3de97c99db12e42433cae9115bb311c516558539fb7114fa17d545b --entity-id 0xdc7d7a8920c8eecc098da5b7522a5f31509b5bfc ```
-
The program will exit with code
1
if the query results are not equal. -
For comparing queries in a range of blocks:
-
Config file should have the names of queries to be fired along with the corresponding entity names.
[queries] queryDir = "../graph-test-watcher/src/gql/queries" [queries.names] author = "Author" blog = "Blog"
The queries will be fired if the corresponding entities are updated.
-
Run the CLI:
./bin/compare-blocks --config-file environments/compare-cli-config.toml --start-block 1 --end-block 10
-
For comparing entities after fetching updated entity ids from watcher database:
-
Set the watcher config file path and entities directory.
[endpoints] gqlEndpoint1 = "http://localhost:8000/subgraphs/name/example1" gqlEndpoint2 = "http://localhost:3008/graphql" [queries] queryDir = "../graph-test-watcher/src/gql/queries" [queries.names] author = "Author" blog = "Blog" [watcher] configPath = "../../graph-test-watcher/environments/local.toml" entitiesDir = "../../graph-test-watcher/dist/entity/*"
-
To verify
diff
State state generated at each block, set the watcher endpoint andverifyState
flag to true[watcher] configPath = "../../graph-test-watcher/environments/local.toml" entitiesDir = "../../graph-test-watcher/dist/entity/*" endpoint = "gqlEndpoint2" verifyState = true
-
Run the CLI with
fetch-ids
flag set to true:\./bin/compare-blocks --config-file environments/compare-cli-config.toml --start-block 1 --end-block 10 --fetch-ids
-
-
-