Skip to content

ATS-PFM-QRY-011Maintain a shared report library: Capability Test Specification

Markdown

ATS-PFM-QRY-011

Maintain a shared report library: Capability Test Specification

Markdown
  • DocumentProposed

KindAcceptance test setProduct areaPlatformModuleQuestions, record exploration and data deliveryRevision2

Read atservices-platform ad3f6a65react-console baf6dae3rhythm-v2-docs 99376625

Coverage

  • Rule covered
  • Transition not-applicable
  • Validation covered
  • Permission covered
  • Edge gap: FND-PFM-QRY-061
  • Failure gap: FND-PFM-QRY-061
  • Boundary covered
  • Concurrency covered
  • Invariant gap: FND-PFM-QRY-061
  • Interaction covered

Test Scenarios

17 scenarios proving CAP-PFM-QRY-011; 13 bound to an existing test.

01 Audience refusal conceals report existencepermissionapinegativetest
Proves
BR-CAP-PFM-QRY-011-01 INV-DOM-PFM-QRY-003-01
Preconditions
Private, selected-role and organization reports exist.
Steps
Read and list as an unrelated colleague and a report manager.
Expected
The colleague sees only allowed audiences; the manager reaches the reports and other lookups return 404.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#answers a colleague’s read of a private report as 404, exactly as an id nobody holds
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#answers 200 with the reports the caller may see, never a colleague’s private one
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#answers a manager every report, a colleague’s private one included
services-platform:modules/queries/tests/integration/services/reports/report-library.integration.spec.js#answers a role-shared report naming none of the colleague’s roles as not found
Source
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#answers a colleague’s read of a private report as 404, exactly as an id nobody holds
02 Read Only report access excludes write operationspermissionapinegativetest
Proves
BR-CAP-PFM-QRY-011-02
Preconditions
A Read Only user can see a shared report.
Steps
List and open it, then attempt creation, copying, replacement, removal and export.
Expected
Reads work without editing powers and attempted writes return 403.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/queries/tests/e2e/read-tier.e2e.spec.js#opens the organization’s report, which it may not edit, delete or share
services-platform:modules/queries/tests/e2e/read-tier.e2e.spec.js#is refused creating a report, which includes copying one, with 403
Source
services-platform:modules/queries/tests/e2e/read-tier.e2e.spec.js#lists the organization’s report
03 Base-dataset denial removes report discoverypermissionapinegativetest
Proves
BR-CAP-PFM-QRY-011-03
Preconditions
A shared report depends on a base dataset denied to the reader.
Steps
List and open the report as that reader.
Expected
The entry is omitted and direct opening returns 404.
Data
Use the existing binding’s controlled fixture data.
Bound to
Source
services-platform:modules/queries/tests/e2e/read-tier.e2e.spec.js#is not shown the report in the catalog
04 Source audiences constrain report sharinginteractionapinegativetest
Proves
BR-CAP-PFM-QRY-011-04 INV-DOM-PFM-QRY-003-02
Preconditions
A source question is private.
Steps
Create a wider report and widen an existing report over it.
Expected
Both attempts conflict and identify the narrower source.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a report shared wider than its saved query as 409 ReportSharedWiderThanQuery, naming the query
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses widening a report beyond its saved query as 409 ReportSharedWiderThanQuery
Source
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a report shared wider than its saved query as 409 ReportSharedWiderThanQuery, naming the query
05 Ownership and share authority govern report changespermissionapinegativetest
Proves
BR-CAP-PFM-QRY-011-05
Preconditions
A report belongs to another user and its owner lacks share permission.
Steps
Edit as the colleague and widen sharing as the owner.
Expected
Both writes return 403.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a colleague’s edit of an organization report as 403
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses sharing without platform.reports.share as 403
services-platform:modules/queries/tests/unit/services/reports/report-access.spec.ts#lets the owner edit, delete and copy their report, but not share it without platform.reports.share
Source
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a colleague’s edit of an organization report as 403
06 Support staff receive report-management powerspermissionunittest
Proves
BR-CAP-PFM-QRY-011-06
Preconditions
A staff context holds a workspace grant for another owner’s private report.
Steps
Evaluate its read and maintenance powers.
Expected
The staff context can inspect and maintain the report.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/queries/tests/unit/services/reports/report-access.spec.ts#shows a colleague’s private report to staff holding no report key but the route’s
services-platform:modules/queries/tests/unit/services/reports/report-access.spec.ts#gives staff every write power over a colleague’s private report, as a manager has
Source
services-platform:modules/queries/tests/unit/services/reports/report-access.spec.ts#shows a colleague’s private report to staff holding no report key but the route’s
07 Permitted copying creates caller-private workruleapitest
Proves
BR-CAP-PFM-QRY-011-07
Preconditions
A report-use holder can see an organization report.
Steps
Create a copy using that caller.
Expected
The copy belongs to the caller and remains private.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/queries/tests/unit/services/reports/report-access.spec.ts#lets a colleague who can see a shared report copy it and nothing else
services-platform:modules/queries/tests/integration/services/reports/report-library.integration.spec.js#lets a colleague copy an organization report it can see, the copy its own and private
Source
services-platform:modules/queries/tests/unit/services/reports/report-access.spec.ts#lets a colleague who can see a shared report copy it and nothing else
08 Report creation requires a visible sourcevalidationapinegativetest
Proves
BR-CAP-PFM-QRY-011-08
Preconditions
A colleague owns a private saved question.
Steps
Create a report using that source.
Expected
The response returns 400 locating the unavailable source.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a saved query the caller may not see as 400 naming saved_query_id
Source
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a saved query the caller may not see as 400 naming saved_query_id
09 Report storage rejects excess names and layoutsboundaryapinegativetest
Proves
BR-CAP-PFM-QRY-011-09 INV-DOM-PFM-QRY-003-04
Preconditions
An owner has a report named Q3.
Steps
Try a duplicate name, an oversized name, an oversized layout and a case-only self-rename.
Expected
Invalid changes fail without echoing the excess layout; the self-rename succeeds.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/queries/tests/integration/services/persistence/reports.integration.spec.js#refuses a second report of the owner whose name differs only in case, storing nothing
Source
services-platform:modules/queries/tests/integration/services/persistence/reports.integration.spec.js#refuses a second report of the owner whose name differs only in case, storing nothing
10 Report changes require current versionsconcurrencyapinegativetest
Proves
BR-CAP-PFM-QRY-011-10 INV-DOM-PFM-QRY-003-08
Preconditions
A report is at version three.
Steps
Save and remove it with no version and with an older version.
Expected
Missing versions return 400 and stale versions return 409.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a replacement that states no version as 400 MissingVersion
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a replacement at a version no longer in force as 409
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a delete that states no version as 400 MissingVersion
Source
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a replacement that states no version as 400 MissingVersion
11 Saving a report acknowledges current source stateinteractionapitest
Proves
BR-CAP-PFM-QRY-011-11
Preconditions
A report retains an earlier source definition.
Steps
Change the query, read the warning, resave the report and inspect it again.
Expected
The change warning appears before resaving and clears afterward.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#answers saved_query_changed once the saved query has been edited since the report was saved
Source
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#answers saved_query_changed once the saved query has been edited since the report was saved
12 Report removal updates its dependenciestransitionapitest
Proves
BR-CAP-PFM-QRY-011-12 INV-DOM-PFM-QRY-003-06
Preconditions
A scheduled report depends on one saved question.
Steps
Delete the report and subsequently remove its released source.
Expected
The schedule pauses for report deletion and the released query can be removed.
Data
Use the existing binding’s controlled fixture data.
Bound to
services-platform:modules/queries/tests/e2e/query-schedules.e2e.spec.js#pauses the schedule report_deleted, its report gone
Source
services-platform:modules/queries/tests/e2e/query-schedules.e2e.spec.js#deletes the report
13 Catalog sharing preserves reader data authorityinteractionbrowsertest
Proves
AS-JNY-PFM-QRY-001-01 AS-JNY-PFM-QRY-001-02 AS-JNY-PFM-QRY-001-03
Preconditions
An author and finance colleague use the report catalog.
Steps
Execute the copy-and-sharing browser journey.
Expected
Copy ownership, permitted sharing, colleague execution and source-narrowing refusal are observed.
Data
Use the existing binding’s controlled fixture data.
Bound to
Source
react-console:acceptance/reporting/playwright/journeys/catalog-and-sharing/RPT-ACC-0002.spec.ts#RPT-ACC-0002
14 A source audience cannot strand a wider reportinteractionapiproposed
Proves
BR-CAP-PFM-QRY-006-08 BR-CAP-PFM-QRY-011-04
Preconditions
A role-shared report depends on an organization-shared query.
Steps
Attempt to make the query private, then narrow the report and repeat the query change.
Expected
The first change identifies the blocking report; compatible audience changes allow the query to become private.
Data
Use an isolated workspace with the described source records, access grants and a surviving control workspace.
Source
services-platform:modules/queries/tests/integration/services/saved-queries/saved-query-narrowing.integration.spec.js#refuses narrowing it to private with 409 saved_query_narrower_than_reports, naming the report,services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a report shared wider than its saved query as 409 ReportSharedWiderThanQuery, naming the query
15 A second dashboard source narrows the sharing choiceinteractionapiproposed
Proves
BR-CAP-PFM-QRY-011-04 BR-CAP-PFM-QRY-012-04
Preconditions
An organization-shared question and a Finance-only question supply separate widgets.
Steps
Save a private dashboard, attempt organization sharing and then share only with Finance.
Expected
The wider attempt identifies the Finance source; the contained audience can be saved.
Data
Use an isolated workspace with the described source records, access grants and a surviving control workspace.
Source
services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a report shared wider than its saved query as 409 ReportSharedWiderThanQuery, naming the query,services-platform:modules/queries/tests/e2e/reports.e2e.spec.js#refuses a dashboard shared wider than one of its sources as 409, naming that source
16 Deleting a report separates pending and completed filesinteractionapinegativeproposed
Proves
BR-CAP-PFM-QRY-011-12 BR-CAP-PFM-QRY-013-09
Preconditions
A report has one completed file and a second queued rendering request.
Steps
Delete the report, follow the completed download and process the queued request.
Expected
The completed file remains available until expiry and the queued render fails for lost access.
Data
Use an isolated workspace with the described source records, access grants and a surviving control workspace.
Source
services-platform:modules/queries/tests/e2e/query-schedules.e2e.spec.js#pauses the schedule report_deleted, its report gone,services-platform:docs/queries/report-rendering.md#2. The export row
17 Deleting a report pauses its recurring deliveriesinteractionapinegativeproposed
Proves
BR-CAP-PFM-QRY-011-12 BR-CAP-PFM-QRY-015-13
Preconditions
A report has both enabled and manually paused schedules plus a retained completed file.
Steps
Delete the report, inspect both schedules and try resuming or running them.
Expected
Both carry the report-deleted pause, retain their history and refuse new runs; the completed file remains.
Data
Use an isolated workspace with the described source records, access grants and a surviving control workspace.
Source
services-platform:modules/queries/tests/e2e/query-schedules.e2e.spec.js#pauses the schedule report_deleted, its report gone,services-platform:modules/queries/tests/e2e/query-schedules.e2e.spec.js#refuses to resume it (400)

The Markdown files under specs/ in rhythmsoftware/rhythm-v2-docs are the canonical source of truth. This reader is a generated, read-only projection of them.