Bladeren bron

tests: refactor createMockChannel to not return Promise<null> to avoid need for non-null assertions

Mokhtar Naamani 3 jaren geleden
bovenliggende
commit
5480e207fe

+ 1 - 0
tests/network-tests/.prettierignore

@@ -1,2 +1,3 @@
 .nyc_output/
 .tmp/
+data/

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

@@ -1790,7 +1790,8 @@ export class Api {
     return (await this.api.query.members.membershipById(memberId))?.controller_account.toString()
   }
 
-  async createMockChannel(memberId: number, memberControllerAccount?: string): Promise<ChannelId | null> {
+  // Create a mock channel, throws on failure
+  async createMockChannel(memberId: number, memberControllerAccount?: string): Promise<ChannelId> {
     memberControllerAccount = memberControllerAccount || (await this.getMemberControllerAccount(memberId))
 
     if (!memberControllerAccount) {
@@ -1814,14 +1815,12 @@ export class Api {
       return record.event.data[1] as ChannelId
     }
 
-    return null
+    // TODO: get error from 'result'
+    throw new Error('Failed to create channel')
   }
 
-  async createMockVideo(
-    memberId: number,
-    channelId: number,
-    memberControllerAccount?: string
-  ): Promise<VideoId | null> {
+  // Create a mock video, throws on failure
+  async createMockVideo(memberId: number, channelId: number, memberControllerAccount?: string): Promise<VideoId> {
     memberControllerAccount = memberControllerAccount || (await this.getMemberControllerAccount(memberId))
 
     if (!memberControllerAccount) {
@@ -1841,7 +1840,8 @@ export class Api {
       return record.event.data[2] as VideoId
     }
 
-    return null
+    // TODO: get error from 'result'
+    throw new Error('Failed to create video')
   }
 
   async createChannelCategoryAsLead(name: string): Promise<ISubmittableResult> {

+ 3 - 8
tests/network-tests/src/misc/createChannelsAsMemberFixture.ts

@@ -1,14 +1,12 @@
 import { BaseFixture } from '../Fixture'
 import { Api } from '../Api'
-// import { MemberId } from '@joystream/types/members'
 import { ChannelId } from '@joystream/types/common'
-import { assert } from 'chai'
 
 export class CreateChannelsAsMemberFixture extends BaseFixture {
   // Member that will be channel owner
   private memberId: number
   private numChannels: number
-  private createdChannels: (ChannelId | null)[] = []
+  private createdChannels: ChannelId[] = []
 
   constructor(api: Api, memberId: number, numChannels: number) {
     super(api)
@@ -16,7 +14,7 @@ export class CreateChannelsAsMemberFixture extends BaseFixture {
     this.numChannels = numChannels
   }
 
-  public getCreatedChannels(): (ChannelId | null)[] {
+  public getCreatedChannels(): ChannelId[] {
     return this.createdChannels.slice()
   }
 
@@ -28,9 +26,6 @@ export class CreateChannelsAsMemberFixture extends BaseFixture {
       channels.push(this.api.createMockChannel(this.memberId, account))
     }
 
-    const channelIds = await Promise.all(channels)
-    this.createdChannels = channelIds.filter((id) => id !== null)
-
-    assert.equal(this.createdChannels.length, this.numChannels)
+    this.createdChannels = await Promise.all(channels)
   }
 }

+ 1 - 6
tests/network-tests/src/misc/createVideosAsMemberFixture.ts

@@ -1,8 +1,5 @@
 import { BaseFixture } from '../Fixture'
 import { Api } from '../Api'
-// import { MemberId } from '@joystream/types/members'
-// import { ChannelId } from '@joystream/types/common'
-import { assert } from 'chai'
 
 export class CreateVideosAsMemberFixture extends BaseFixture {
   // Member that will be channel owner
@@ -25,8 +22,6 @@ export class CreateVideosAsMemberFixture extends BaseFixture {
       videos.push(this.api.createMockVideo(this.memberId, this.channelId, account))
     }
 
-    const videoIds = await Promise.all(videos)
-    const created = videoIds.filter((id) => id !== null).length
-    assert.equal(created, this.numVideos)
+    await Promise.all(videos)
   }
 }