Browse Source

tests: council size can be selected in flow

Mokhtar Naamani 3 years ago
parent
commit
f46d0527ae

+ 13 - 13
tests/network-tests/run-tests.sh

@@ -27,17 +27,17 @@ echo "{
 }" > ${DATA_PATH}/initial-balances.json
 
 # Make Alice a member
-echo '
-  [{
-    "member_id":0,
-    "root_account":"5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
-    "controller_account":"5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
-    "handle":"alice",
-    "avatar_uri":"https://alice.com/avatar.png",
-    "about":"Alice",
-    "registered_at_time":0
-  }]
-' > ${DATA_PATH}/initial-members.json
+# echo '
+#   [{
+#     "member_id":0,
+#     "root_account":"5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
+#     "controller_account":"5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY",
+#     "handle":"alice",
+#     "avatar_uri":"https://alice.com/avatar.png",
+#     "about":"Alice",
+#     "registered_at_time":0
+#   }]
+# ' > ${DATA_PATH}/initial-members.json
 
 # Create a chain spec file
 docker run --rm -v ${DATA_PATH}:/data --entrypoint ./chain-spec-builder joystream/node:${RUNTIME} \
@@ -46,8 +46,8 @@ docker run --rm -v ${DATA_PATH}:/data --entrypoint ./chain-spec-builder joystrea
   --sudo-account  5GrwvaEF5zXb26Fz9rcQpDWS57CtERHpNehXCPcNoHGKutQY \
   --deployment dev \
   --chain-spec-path /data/chain-spec.json \
-  --initial-balances-path /data/initial-balances.json \
-  --initial-members-path /data/initial-members.json
+  --initial-balances-path /data/initial-balances.json
+# --initial-members-path /data/initial-members.json
 
 # Convert the chain spec file to a raw chainspec file
 docker run --rm -v ${DATA_PATH}:/data joystream/node:${RUNTIME} build-spec \

+ 1 - 1
tests/network-tests/src/Api.ts

@@ -1880,7 +1880,7 @@ export class Api {
     assert(memberController, 'Member controller not found')
 
     // Expect membercontroller key is already added to keyring
-    // Is is responsibility of called to ensure this is the case!
+    // Is is responsibility of caller to ensure this is the case!
 
     const updateRoleAccountCall = this.api.tx[group].updateRoleAccount(workerId, account)
     return this.makeSudoAsCall(memberController!, updateRoleAccountCall)

+ 11 - 3
tests/network-tests/src/flows/council/assign.ts

@@ -7,7 +7,13 @@ import { extendDebug } from '../../Debugger'
 import { FixtureRunner } from '../../Fixture'
 import { Resource } from '../../Resources'
 
-export default async function assignCoundil({ api, env, lock }: FlowProps): Promise<void> {
+export default function createAssignCouncil(size = 1) {
+  return async function (props: FlowProps): Promise<void> {
+    return assignCouncil(props, size)
+  }
+}
+
+async function assignCouncil({ api, env, lock }: FlowProps, size: number): Promise<void> {
   const label = 'assignCouncil'
   const debug = extendDebug(`flow:${label}`)
 
@@ -20,10 +26,12 @@ export default async function assignCoundil({ api, env, lock }: FlowProps): Prom
     return debug('Skipping council setup. A Council is already elected')
   }
 
-  debug('Assigning new council')
+  const councilSize = size || (await api.getCouncilSize()).toNumber()
+
+  debug('Assigning new council of size', councilSize)
 
-  const councilSize = (await api.getCouncilSize()).toNumber()
   const council = []
+
   for (let i = 0; i < councilSize; i++) {
     council.push(api.createCustomKeyPair(`CouncilMember//${i}`).address)
   }

+ 3 - 2
tests/network-tests/src/scenarios/setup-new-chain.ts

@@ -6,14 +6,15 @@ import updateAccountsFlow from '../sumer/updateAllWorkerRoleAccountsFlow'
 import { scenario } from '../Scenario'
 
 scenario(async ({ job }) => {
-  const council = job('Create Council', assignCouncil)
+  const COUNCIL_SIZE = 1
+  job('Create Council', assignCouncil(COUNCIL_SIZE))
 
   const leads = job('Setup WorkingGroup Leads', [leaderSetup.storage, leaderSetup.content])
 
   const updateWorkerAccounts = job('Update worker accounts', updateAccountsFlow).after(leads)
 
   // Create some mock content in content directory - without assets or any real metadata
-  const mockContent = job('Create Mock Content', mockContentFlow).after(updateWorkerAccounts)
+  job('Create Mock Content', mockContentFlow).after(updateWorkerAccounts)
 
   // assign members known accounts?
   // assign council known accounts?

+ 1 - 1
tests/network-tests/src/sumer/updateAllWorkerRoleAccountsFlow.ts

@@ -5,7 +5,7 @@ import { FixtureRunner } from '../Fixture'
 import { extendDebug } from '../Debugger'
 
 export default async function updateAllWorkerAccounts({ api }: FlowProps): Promise<void> {
-  const debug = extendDebug('flow:atEndOfScenario')
+  const debug = extendDebug('flow:updateAllWorkerAccounts')
   debug('Started')
 
   const updateAccounts = new UpdateLeadWorkerAccountsFixture(api)

+ 2 - 0
tests/network-tests/test-setup-new-chain.sh

@@ -75,6 +75,8 @@ function cleanup() {
 
 trap cleanup EXIT
 
+sleep 3
+
 # Display runtime version
 yarn workspace api-scripts tsnode-strict src/status.ts | grep Runtime