UNPKG

@graphprotocol/graph-cli

Version:

CLI for building for and deploying to The Graph

82 lines (64 loc) 2.58 kB
const { initNetworksConfig, updateSubgraphNetwork } = require('../command-helpers/network') const toolbox = require('gluegun/toolbox') const yaml = require('yaml') const path = require('path') const SUBGRAPH_PATH_BASE = path.join(__dirname,'..','..','..','..','examples','example-subgraph') describe('initNetworksConfig', () => { beforeAll(async () => { await initNetworksConfig(toolbox, SUBGRAPH_PATH_BASE, 'address') }) afterAll(async () => { await toolbox.filesystem.remove(`${SUBGRAPH_PATH_BASE}/networks.json`) }) test('generates networks.json from subgraph.yaml', () => { expect(toolbox.filesystem.exists(`${SUBGRAPH_PATH_BASE}/networks.json`)).toBe('file') }) test('Populates the networks.json file with the data from subgraph.yaml', async () => { let networksStr = await toolbox.filesystem.read(`${SUBGRAPH_PATH_BASE}/networks.json`) let networks = JSON.parse(networksStr) let expected = { mainnet: { ExampleSubgraph: { address: '0x22843e74c59580b3eaf6c233fa67d8b7c561a835' } } } expect(networks).toStrictEqual(expected) }) }) describe('updateSubgraphNetwork', () => { beforeAll(async () => { let content = { optimism: { ExampleSubgraph: { address: '0x12345...' } } } await toolbox.filesystem.write(`${SUBGRAPH_PATH_BASE}/networks.json`, content) await toolbox.filesystem.copy(`${SUBGRAPH_PATH_BASE}/subgraph.yaml`, `${SUBGRAPH_PATH_BASE}/subgraph_copy.yaml`) }) afterAll(async () => { await toolbox.filesystem.remove(`${SUBGRAPH_PATH_BASE}/networks.json`) await toolbox.filesystem.remove(`${SUBGRAPH_PATH_BASE}/subgraph_copy.yaml`) }) test('Updates subgraph.yaml', async () => { let manifest = `${SUBGRAPH_PATH_BASE}/subgraph_copy.yaml` let networksFie = `${SUBGRAPH_PATH_BASE}/networks.json` let subgraph = await toolbox.filesystem.read(manifest) let subgraphObj = yaml.parse(subgraph) let network = subgraphObj.dataSources[0].network let address = subgraphObj.dataSources[0].source.address expect(network).toBe('mainnet') expect(address).toBe('0x22843e74c59580b3eaf6c233fa67d8b7c561a835') await updateSubgraphNetwork( toolbox, manifest, 'optimism', networksFie, 'address' ) subgraph = await toolbox.filesystem.read(manifest) subgraphObj = yaml.parse(subgraph) network = subgraphObj.dataSources[0].network address = subgraphObj.dataSources[0].source.address expect(network).toBe('optimism') expect(address).toBe('0x12345...') }) })