Test Name: Upload a JSON data dictionary
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-40
Description: A user can upload a JSON file to create a new data dictionary that is saved and visible in settings.
This Test Verifies:
| Verification Step | What It Checks |
| Upload JSON dictionary file |
A JSON file can be successfully imported as a named dictionary |
| Dictionary is saved and shown in settings |
The newly uploaded dictionary appears in the user's settings after import |
Test Name: Upload an Excel data dictionary
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-40
Description: A user can upload an Excel (.xlsx) file to create a new data dictionary that is saved and visible in settings.
This Test Verifies:
| Verification Step | What It Checks |
| Upload XLSX dictionary file |
An Excel file can be successfully imported as a named dictionary |
| Dictionary is saved and shown in settings |
The newly uploaded dictionary appears in the user's settings after import |
Test Name: Create dictionary manually without importing a file
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-41
Description: A user can manually create a data dictionary by entering a name and defining terms directly, without uploading a file.
This Test Verifies:
| Verification Step | What It Checks |
| Create dictionary with a single term manually |
A user can define a dictionary name and a term-definition pair without any file upload |
| Dictionary is saved and shown in settings |
The manually created dictionary appears in the user's settings |
Test Name: Edit dictionary name
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-42
Description: A user can rename an existing saved dictionary and see the updated name reflected in settings.
This Test Verifies:
| Verification Step | What It Checks |
| Rename an existing dictionary |
A saved dictionary's name can be changed |
| Renamed dictionary is visible |
The new dictionary name is displayed in settings after the rename |
Test Name: Edit dictionary entries
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-42
Description: A user can update the terms and definitions within an existing saved dictionary.
This Test Verifies:
| Verification Step | What It Checks |
| Edit entries in an existing dictionary |
A saved dictionary's term and definition can be modified |
| Updated dictionary is saved and shown in settings |
The edited dictionary content is persisted and visible in settings |
Test Name: Mark dictionary as default
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-43
Description: A user can designate a saved dictionary as the default dictionary.
This Test Verifies:
| Verification Step | What It Checks |
| Mark a dictionary as default |
A saved dictionary can be set as the default |
| Dictionary is marked as default |
The dictionary correctly reflects its default status in settings |
Test Name: Changing the default dictionary clears the previous default
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-43
Description: When a user sets a new default dictionary, the previously defaulted dictionary is automatically unset.
This Test Verifies:
| Verification Step | What It Checks |
| Set a second dictionary as default |
A new dictionary can be promoted to default |
| New dictionary is marked as default |
The newly selected dictionary shows the default status |
| Old dictionary is no longer marked as default |
Only one dictionary can hold the default status at a time |
Test Name: Upload an unsupported file format shows an import error
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-40
Description: When a user uploads a file in an unsupported format, they receive a clear error message.
This Test Verifies:
| Verification Step | What It Checks |
| Upload an unsupported file format |
The system rejects files that are not in a supported format |
| Error message contains 'Unsupported file type' |
The user sees a descriptive error explaining the file type is not accepted |
Test Name: Upload a malformed JSON file shows an import error
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-40
Description: When a user uploads a JSON file with invalid formatting, they receive a clear error message.
This Test Verifies:
| Verification Step | What It Checks |
| Upload a malformed JSON file |
The system rejects JSON files that are not properly formatted |
| Error message contains 'Invalid JSON' |
The user sees a descriptive error indicating the JSON content is invalid |
Test Name: Upload a JSON with too many entries shows an import error
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-40
Description: When a user uploads a JSON dictionary that exceeds the maximum allowed number of entries, they receive a clear error message.
This Test Verifies:
| Verification Step | What It Checks |
| Upload a JSON dictionary with too many entries |
The system enforces an upper limit of 500 entries per dictionary |
| Error message contains 'may not exceed 500 entries' |
The user sees a descriptive error explaining the entry limit has been exceeded |
Test Name: Upload an oversized XLSX file shows an import error
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-40
Description: When a user uploads an Excel dictionary file that is too large, they receive a clear error message.
This Test Verifies:
| Verification Step | What It Checks |
| Upload an oversized XLSX file |
The system enforces a maximum file size for Excel uploads |
| Error message contains 'File too large' |
The user sees a descriptive error explaining the file exceeds the size limit |
Test Name: Create dictionary manually with multiple terms
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-41
Description: A user can manually create a data dictionary containing multiple terms and definitions.
This Test Verifies:
| Verification Step | What It Checks |
| Create a dictionary with multiple terms manually |
A user can add more than one term-definition pair when creating a dictionary by hand |
| Dictionary is saved and shown in settings |
The multi-term dictionary is persisted and visible in settings |
Test Name: Duplicate dictionary name shows an error
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-41
Description: When a user attempts to create a second dictionary with the same name as an existing one, they receive an error preventing duplicates.
This Test Verifies:
| Verification Step | What It Checks |
| Upload two dictionaries with the same name |
The system prevents two dictionaries from sharing the same name |
| Duplicate dictionary name error is shown |
The user sees a clear error message when a duplicate name conflict occurs |
Test Name: Export dictionary as JSON
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-44
Description: A user can export a saved dictionary as a JSON file download.
This Test Verifies:
| Verification Step | What It Checks |
| Export a dictionary as JSON |
The export action triggers a file download |
| Downloaded file has a .json extension |
The exported file is in JSON format |
Test Name: Export dictionary as Excel
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-44
Description: A user can export a saved dictionary as an Excel file download.
This Test Verifies:
| Verification Step | What It Checks |
| Export a dictionary as Excel |
The export action triggers a file download |
| Downloaded file has a .xlsx extension |
The exported file is in Excel format |
Test Name: Delete saved dictionary
Feature: Data Dictionary Management
User Role: logged-in user
Traceability:
@SHIFT-46
Description: A user can permanently delete a saved dictionary, removing it from their settings.
This Test Verifies:
| Verification Step | What It Checks |
| Delete an existing dictionary |
A saved dictionary can be removed by the user |
| Dictionary is removed from settings |
The deleted dictionary no longer appears in the user's settings |
Test Name: Override dictionary for a session
Feature: Data Dictionary Management
Traceability:
@SHIFT-45
Description: A user can supply a dictionary file during an analysis session to use it for that analysis only, without changing their saved default.
This Test Verifies:
| Verification Step | What It Checks |
| Supply a dictionary file in the analysis panel |
A dictionary can be provided at the point of analysis rather than set up in advance |
| That dictionary is used for the current analysis only |
The session-level dictionary applies only to the current analysis and does not affect saved settings |
Test Name: Upload a JSON data dictionary
Feature: Data Dictionary Management
Traceability:
@SHIFT-40
Execution:
Tag: @requires_login
Journey: A logged-in user uploads a JSON file to create a named data dictionary and verifies it appears in settings.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Upload a JSON data dictionary
|
User is logged in and on the settings page
|
User uploads a JSON dictionary file named 'E2E JSON Dictionary'
|
Dictionary is saved and shown in settings
|
Positive
|
Test Name: Upload an Excel data dictionary
Feature: Data Dictionary Management
Traceability:
@SHIFT-40
Execution:
Tag: @requires_login
Journey: A logged-in user uploads an XLSX file to create a named data dictionary and verifies it appears in settings.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Upload an Excel data dictionary
|
User is logged in and on the settings page
|
User uploads an xlsx dictionary file named 'E2E XLSX Dictionary'
|
Dictionary is saved and shown in settings
|
Positive
|
Test Name: Create dictionary manually without importing a file
Feature: Data Dictionary Management
Traceability:
@SHIFT-41
Execution:
Tag: @requires_login
Journey: A logged-in user manually creates a dictionary with a single term and definition, then verifies it is saved in settings.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Create dictionary manually without importing a file
|
User is logged in and on the settings page
|
User creates a dictionary named 'Manual Dictionary' with term 'TC' defined as 'Test Case'
|
Dictionary is saved and shown in settings
|
Positive
|
Test Name: Edit dictionary name
Feature: Data Dictionary Management
Traceability:
@SHIFT-42
Execution:
Tag: @requires_login
Journey: A logged-in user renames an existing saved dictionary and verifies the new name is reflected in settings.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Edit dictionary name
|
User is logged in with a saved dictionary named 'E2E Edit Name Dictionary'
|
User renames the dictionary to 'E2E Renamed Dictionary'
|
Dictionary named 'E2E Renamed Dictionary' is visible
|
Positive
|
Test Name: Edit dictionary entries
Feature: Data Dictionary Management
Traceability:
@SHIFT-42
Execution:
Tag: @requires_login
Journey: A logged-in user edits the term entries of an existing dictionary and verifies the updated entries are saved.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Edit dictionary entries
|
User is logged in with a saved dictionary named 'E2E Edit Entries Dictionary'
|
User edits the dictionary entries to set term 'BDD' defined as 'Behaviour Driven Development'
|
Dictionary is saved and shown in settings
|
Positive
|
Test Name: Mark dictionary as default
Feature: Data Dictionary Management
Traceability:
@SHIFT-43
Execution:
Tag: @requires_login
Journey: A logged-in user marks a saved dictionary as the default and verifies the default flag is applied.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Mark dictionary as default
|
User is logged in with a saved dictionary named 'E2E Default Dictionary'
|
User marks the dictionary as default
|
Dictionary is marked as default
|
Positive
|
Test Name: Changing the default dictionary clears the previous default
Feature: Data Dictionary Management
Traceability:
@SHIFT-43
Execution:
Tag: @requires_login
Journey: A logged-in user sets a new dictionary as default and verifies the previously defaulted dictionary is no longer marked as default.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Changing the default dictionary clears the previous default
|
User is logged in with two saved dictionaries, 'E2E Old Default' already marked as default
|
User marks 'E2E New Default' as the default dictionary
|
'E2E New Default' is marked as default and 'E2E Old Default' is not marked as default
|
Edge Case
|
Test Name: Upload an unsupported file format shows an import error
Feature: Data Dictionary Management
Traceability:
@SHIFT-40
Execution:
Tag: @requires_login
Journey: A logged-in user attempts to upload a dictionary file in an unsupported format and receives a descriptive import error.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Upload an unsupported file format shows an import error
|
User is logged in and on the settings page
|
User uploads a file with an unsupported format
|
Import error containing 'Unsupported file type' is displayed
|
Negative
|
Test Name: Upload a malformed JSON file shows an import error
Feature: Data Dictionary Management
Traceability:
@SHIFT-40
Execution:
Tag: @requires_login
Journey: A logged-in user uploads a structurally invalid JSON dictionary file and receives a descriptive parse error.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Upload a malformed JSON file shows an import error
|
User is logged in and on the settings page
|
User uploads a malformed JSON dictionary file
|
Import error containing 'Invalid JSON' is displayed
|
Negative
|
Test Name: Upload a JSON with too many entries shows an import error
Feature: Data Dictionary Management
Traceability:
@SHIFT-40
Execution:
Tag: @requires_login
Journey: A logged-in user uploads a JSON dictionary that exceeds the maximum entry count and receives an error citing the 500-entry limit.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Upload a JSON with too many entries shows an import error
|
User is logged in and on the settings page
|
User uploads a JSON dictionary with too many entries
|
Import error containing 'may not exceed 500 entries' is displayed
|
Boundary
|
Test Name: Upload an oversized XLSX file shows an import error
Feature: Data Dictionary Management
Traceability:
@SHIFT-40
Execution:
Tag: @requires_login
Journey: A logged-in user uploads an XLSX dictionary file exceeding the allowed size limit and receives a file size error.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Upload an oversized XLSX file shows an import error
|
User is logged in and on the settings page
|
User uploads an oversized XLSX dictionary file
|
Import error containing 'File too large' is displayed
|
Boundary
|
Test Name: Create dictionary manually with multiple terms
Feature: Data Dictionary Management
Traceability:
@SHIFT-41
Execution:
Tag: @requires_login
Journey: A logged-in user manually creates a dictionary containing multiple terms and verifies it is saved in settings.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Create dictionary manually with multiple terms
|
User is logged in and on the settings page
|
User creates a dictionary named 'E2E Multi-Term Dict' with multiple terms
|
Dictionary is saved and shown in settings
|
Positive
|
Test Name: Duplicate dictionary name shows an error
Feature: Data Dictionary Management
Traceability:
@SHIFT-41
Execution:
Tag: @requires_login
Journey: A logged-in user attempts to upload a second dictionary with the same name as an existing one and receives a duplicate name error.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Duplicate dictionary name shows an error
|
User is logged in, on settings page, and has already uploaded a dictionary named 'E2E Duplicate Test'
|
User uploads another JSON dictionary file named 'E2E Duplicate Test'
|
Duplicate dictionary name error is displayed
|
Negative
|
Test Name: Export dictionary as JSON
Feature: Data Dictionary Management
Traceability:
@SHIFT-44
Execution:
Tag: @requires_login
Journey: A logged-in user exports a saved dictionary in JSON format and verifies a .json file is downloaded.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Export dictionary as JSON
|
User is logged in with a saved dictionary named 'E2E Export JSON'
|
User exports the dictionary as JSON
|
A file with extension '.json' is downloaded
|
Positive
|
Test Name: Export dictionary as Excel
Feature: Data Dictionary Management
Traceability:
@SHIFT-44
Execution:
Tag: @requires_login
Journey: A logged-in user exports a saved dictionary in Excel format and verifies a .xlsx file is downloaded.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Export dictionary as Excel
|
User is logged in with a saved dictionary named 'E2E Export Excel'
|
User exports the dictionary as Excel
|
A file with extension '.xlsx' is downloaded
|
Positive
|
Test Name: Delete saved dictionary
Feature: Data Dictionary Management
Traceability:
@SHIFT-46
Execution:
Tag: @requires_login
Journey: A logged-in user deletes an existing saved dictionary and verifies it is no longer listed in settings.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Delete saved dictionary
|
User is logged in with a saved dictionary named 'E2E Delete Dictionary'
|
User deletes the dictionary
|
Dictionary is removed from settings
|
Positive
|
Test Name: Override dictionary for a session
Feature: Data Dictionary Management
Traceability:
@SHIFT-45
Journey: A user on the Analyze page supplies a dictionary file inline and verifies it overrides the default dictionary for the current analysis session only.
| Scenario |
Given Context |
When Action |
Then Assertion |
Gherkin Type |
|
Override dictionary for a session
|
User is on the Analyze page
|
User supplies a dictionary file in the analysis panel
|
That dictionary is used for the current analysis only
|
Edge Case
|