2025-2026 Conditional Statements Project

2025-2026 Conditional Statements Project

Introduction

Conditional statements are short, structured rules that describe how ArchivesSpace ought to behave in a given scenario. Their purpose is to make the work of the Testing Sub-Team consistent and repeatable across testing efforts.

Conditional statements are very useful for all sorts of people working with or on ArchivesSpace. They reduce guesswork in current/future testing, create a shared library of tests for future upgrades and releases, and also help developers in troubleshooting any issues that arise.

Project Roles

  • Assignee: Drafts new conditional statements for their assigned functional area(s).

  • Reviewer: Checks statements for clarity, completeness and testability.

Everyone will be assigned to at least one Assignee role and one Reviewer role, and no more than two functional areas for either role.

Format & Structure

Conditional Statement Format

Every statement is written using five columns in the Conditional Statements Workbook in order:

  1. Function: The feature or workflow being tested (e.g. “Edit Accession (from Browse list)”)

  2. Given the role: What kind of user is acting (e.g. “Basic user (data entry only)”)

  3. Given other conditions: Any setup details (e.g. “I am in the browse Accessions screen”)

  4. When: The specific action the user takes (e.g. “I click the Edit button to the right of the browse columns”)

  5. Then: The expected result (e.g. “The accession record opens in edit mode”)

This can be read like a sentence that a tester uses to guide the steps they take to test (“When performing the Edit Accession (from Browse list) function, given the role of Basic user (data entry only), when I am in the browse Accessions screen, when I click the Edit button to the right of the browse columns, the accession record opens in edit mode.”)

Functions Column Structure

Each worksheet in the Conditional Statements Workbook is organized with a little bit of built-in structure:

  • At the very top you’ll see a main header (e.g., Accessions functions).

  • Under that, rows are grouped into categories of major actions or sections of ArchivesSpace (e.g., Browse Accessions, Delete Accession).

  • Beneath each sub-header are individual functions (e.g., View accession (from Browse list), Edit accession (from Browse list)). These sub-headers are indented for visual clarity.

You don’t need to create or re-arrange these groupings (though if you feel like they could be better set up, feel free to add/amend as needed). Just work down the rows as they’re laid out, filling in the “Given / When / Then” pieces for each.

Tip: Though you could technically cherry-pick and work through any row in any order, it is best to do this work in sequence, since many of these tests are set up in a way that follows the general flow/order of using the ArchivesSpace application.

Conditional Statement Roles

We will be describing conditional statements for each of these four user roles. Each of these roles correspond to a specific user set up within https://test.archivesspace.org/staff/users.

  • admin: Has all read/write and functional permissions for all repositories sharing the ArchivesSpace installation.

  • archivist: Has read-write permissions for most records for a single repository.

  • basic: Has no application customization permissions; is unable to read or write agent contact information; has read-only access to Accession, Digital Object, Agent, and Subject records, has read/write permissions on Resource records.

  • viewer: Can select a repository to browse and view all unsuppressed records within that repository; has no write permissions for any records. This is not the same as a Public User.

Function-specific roles: Some functional areas require additional roles. These will only appear as options within specific functional areas.

  • unathenticated user: Specific to tests performed on the Public User Interface, this describes a user that is not logged in and browsing the PUI (note: This does not correspond to a specific user permission group; it simply means “an end user who is not logged into ASpace”).

  • create/update digital object records: Specific to Digital Object-related tests, this describes actions that can be done by a user with update/create privileges for digital object records.

How to do the work

Draft a conditional statement

  • Open the 2025-2026 Google Drive folder.

  • Find your assignments:

    • Open the Conditional Statements - Assignments document.

    • Select the Assignments - 2025/2026 tab at the bottom of the workbook.

    • Find your name listed by sorting or filtering the spreadsheet, or performing Ctrl + F (Find): you will find your name listed next to at least one (and up to two) functional areas, as either an Assignee or Reviewer. Make a note of what you are assigned to before moving onto the next step.

    • Use the Status drop-down to update the status from “Not started” to “In progress”.

    • Tip: If you cannot find your assignments, make sure you are in the Assignments - 2025/2026 tab, and remove any filters that may have been applied previously by other users.

  • Write the conditional statement:

    • Open the Conditional Statements Workbook.

    • Click on the tab for the functional area you would like to start working on first (e.g. “Digital Objects”)

    • Use https://test.archivesspace.org/ to sketch out your conditional statement.

    • Fill in each column (Functions, Given the Role, Given other conditions, When, Then)

    • Tip: For “Given the Role”, we usually write for the least permissioned role that can perform the action. For example, if a basic user (data-entry only) can perform the same action as an admin, we don’t need to duplicate it.

    • Work your way through each row until you reach the end.

    • Re-open Conditional Statements - Assignments and update the statement status from “In Progress” to “Completed”.

    • Email your reviewer to let them know you are ready for them to start reviewing.

  • Review a conditional statement:

Timeline

  • Optional Working Session 1: Thursday, September 25, 2–3 PM ET

  • Optional Working Session 2: Friday, October 3, 2–3 PM ET

  • Deadline: Friday, November 21, 2025