feat(agentctl): Phase 720 vanity URL and effective permission export JSON journeys
Add runVanityUrlExportJsonJourney and runEffectivePermissionExportJsonJourney for automated verification of signed export meta after mesh push. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
+36
@@ -4479,6 +4479,42 @@ class HeadlessSession {
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
async runVanityUrlExportJsonJourney () {
|
||||||
|
if (!this.platform) throw new Error('headless not started')
|
||||||
|
await this.registerUser({ username: 'vu720', displayName: 'Vanity 720' })
|
||||||
|
await this.createGuild({ name: 'Vanity 720', publicListing: false })
|
||||||
|
await this.wait({ mode: 'guild' }, 45000)
|
||||||
|
await this.platform.updateUserPrefs({ vanityInviteCode: 'phase720' })
|
||||||
|
await this.refreshView()
|
||||||
|
const pushed = await this.platform.pushVanityUrlExportToMesh()
|
||||||
|
const v = await this.refreshView()
|
||||||
|
if (!pushed?.signature && !v.vanityUrlExportJsonMeta?.signature) {
|
||||||
|
throw new Error('expected signed vanity URL export JSON after mesh push')
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
guildVanityUrlJsonCount: v.guildVanityUrlJsonCount || (v.vanityUrlExportJsonRows || []).length,
|
||||||
|
hasMeta: v.vanityUrlExportJsonMeta != null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
async runEffectivePermissionExportJsonJourney () {
|
||||||
|
if (!this.platform) throw new Error('headless not started')
|
||||||
|
await this.registerUser({ username: 'ep720', displayName: 'Effective 720' })
|
||||||
|
await this.createGuild({ name: 'Effective 720', publicListing: false })
|
||||||
|
await this.wait({ mode: 'guild' }, 45000)
|
||||||
|
await this.refreshView()
|
||||||
|
const pushed = await this.platform.pushEffectivePermissionExportToMesh()
|
||||||
|
const v = await this.refreshView()
|
||||||
|
if (!pushed?.signature && !v.effectivePermissionExportJsonMeta?.signature) {
|
||||||
|
throw new Error('expected signed effective permission export JSON after mesh push')
|
||||||
|
}
|
||||||
|
return {
|
||||||
|
guildEffectivePermissionJsonCount:
|
||||||
|
v.guildEffectivePermissionJsonCount || (v.effectivePermissionExportJsonRows || []).length,
|
||||||
|
hasMeta: v.effectivePermissionExportJsonMeta != null
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
async runForumPostSearchJourney () {
|
async runForumPostSearchJourney () {
|
||||||
if (!this.platform) throw new Error('headless not started')
|
if (!this.platform) throw new Error('headless not started')
|
||||||
await this.registerUser({ username: 'fm672', displayName: 'Forum 672' })
|
await this.registerUser({ username: 'fm672', displayName: 'Forum 672' })
|
||||||
|
|||||||
Reference in New Issue
Block a user