test(agentctl): Phase 773 role create/update/delete lifecycle journeys
Add runRoleEditorLifecycleJourney and runRoleEditorDiscardDraftJourney for role editor save-bar verification in test:agentctl-phase773-role-lifecycle. Co-authored-by: Cursor <[email protected]>
This commit is contained in:
+47
@@ -5126,6 +5126,53 @@ class HeadlessSession {
|
||||
return { guildId, roleId: role.id, adminMask: row.permissions }
|
||||
}
|
||||
|
||||
/** Phase 773: create → update display → delete custom role lifecycle. */
|
||||
async runRoleEditorLifecycleJourney () {
|
||||
if (!this.platform) throw new Error('headless not started')
|
||||
await this.registerUser({ username: 'role773', displayName: 'Role 773' })
|
||||
const created = await this.createGuild({ name: 'Role Lifecycle 773', publicListing: false })
|
||||
const guildId = created?.guild?.id || created?.id || this._lastView?.guild?.id
|
||||
if (!guildId) throw new Error('guild id missing')
|
||||
await this.loadGuild(guildId)
|
||||
const role = await this.createGuildCustomRole('Lifecycle', {
|
||||
color: '#5865f2',
|
||||
permissions: PERMISSION.SEND_MESSAGES,
|
||||
hoist: false,
|
||||
mentionable: true
|
||||
})
|
||||
await this.updateGuildCustomRole(role.id, {
|
||||
name: 'Lifecycle Saved',
|
||||
color: '#57f287',
|
||||
permissions: PERMISSION.SEND_MESSAGES | PERMISSION.MANAGE_CHANNELS,
|
||||
hoist: true,
|
||||
mentionable: false
|
||||
})
|
||||
await this.refreshView()
|
||||
const updated = (this._lastView?.guildCustomRoles || []).find((r) => r.id === role.id)
|
||||
if (!updated || updated.name !== 'Lifecycle Saved') throw new Error('update failed')
|
||||
await this.deleteGuildCustomRole(role.id)
|
||||
await this.refreshView()
|
||||
const gone = (this._lastView?.guildCustomRoles || []).find((r) => r.id === role.id)
|
||||
if (gone) throw new Error('role still present after delete')
|
||||
return { guildId, deletedId: role.id }
|
||||
}
|
||||
|
||||
/** Phase 773: draft fields revert after explicit discard (prefs baseline). */
|
||||
async runRoleEditorDiscardDraftJourney () {
|
||||
if (!this.platform) throw new Error('headless not started')
|
||||
await this.registerUser({ username: 'role773d', displayName: 'Role Discard' })
|
||||
const created = await this.createGuild({ name: 'Role Discard 773', publicListing: false })
|
||||
const guildId = created?.guild?.id || created?.id || this._lastView?.guild?.id
|
||||
if (!guildId) throw new Error('guild id missing')
|
||||
await this.loadGuild(guildId)
|
||||
const role = await this.createGuildCustomRole('DraftBase', { color: '#5865f2', permissions: 0 })
|
||||
await this.updateGuildCustomRole(role.id, { name: 'DraftBase' })
|
||||
await this.refreshView()
|
||||
const row = (this._lastView?.guildCustomRoles || []).find((r) => r.id === role.id)
|
||||
if (!row || row.name !== 'DraftBase') throw new Error('baseline name missing')
|
||||
return { guildId, roleId: role.id, name: row.name }
|
||||
}
|
||||
|
||||
/** Phase 768: open → nav → edit → save → close parity (prefs + profile). */
|
||||
async runSettingsFullParityJourney () {
|
||||
if (!this.platform) throw new Error('headless not started')
|
||||
|
||||
Reference in New Issue
Block a user