Msg/UpdateProjectMetadata
The metadata of a project can be updated:
- when the project exists
- when the admin is the admin of the project
- the project metadata is updated
The project must exist
Background
Given a credit type with abbreviation "C"
And a credit class with class id "C01"
And a project with project id "C01-001" and admin alice.
the project exists
When alice attempts to update project metadata with project id "C01-001"
Then expect no error.
the project does not exist
When alice attempts to update project metadata with project id "C01-002"
Then expect the error "could not get project with id C01-002: not found: invalid request".
The admin must be the admin of the project
Background
Given a credit type with abbreviation "C"
And a credit class with class id "C01"
And a project with project id "C01-001" and admin alice.
the admin is the admin of the project
When alice attempts to update project metadata with project id "C01-001"
Then expect no error.
the admin is not the admin of the project
When bob attempts to update project metadata with project id "C01-001"
Then expect error contains "is not the admin of project C01-001: unauthorized".
The project metadata is updated
Background
Given a credit type with abbreviation "C"
And a credit class with class id "C01"
And a project with project id "C01-001" and admin alice.
the project metadata is updated
When alice attempts to update project metadata with project id "C01-001" and new metadata
regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf
Then expect project with project id "C01-001" and metadata
regen:13toVgf5aZqSVSeJQv562xkkeoe3rr3bJWa29PHVKVf77VAkVMcDvVd.rdf
Event is emitted
Background
Given a credit type with abbreviation "C"
And a credit class with class id "C01"
And a project with project id "C01-001" and admin alice.
EventUpdateProjectMetadata is emitted
When alice attempts to update project metadata with project id "C01-001"
Then expect event with properties
{
"project_id": "C01-001"
}