Skip to content

[API tests] Set sales quote document and posting dates in API tests - #12680

Open
Prangshuman Das (t-prda) wants to merge 1 commit into
features/646383-stack-d3-localized-discountsfrom
features/646383-stack-d4-quote-dates
Open

Prangshuman Das (t-prda) wants to merge 1 commit into
features/646383-stack-d3-localized-discountsfrom
features/646383-stack-d4-quote-dates

Conversation

@t-prda

@t-prda Prangshuman Das (t-prda) commented Oct 12, 2026 •

Copy link
Copy Markdown
Contributor

Review focus: date setup in two sales quote tests.

Area fix (previously #11227): aligns sales quote document and posting dates, then re-enables the affected tests.

Related: AB#646383, AB#653393

Stack (each PR shows only its own layer; merge bottom first)

  1. [API tests] Default to web service key authentication #12674 A: web service key auth (base: main)
  2. [Expense tests] Re-enable Expense Agent API tests #12675 B: Expense API tests + clean test codeunit execution
  3. [API tests] Re-enable APIV1 and APIV2 API tests #12676 C: re-enable APIV1/APIV2 API tests
  4. [API tests] Simplify API test web service key handling #12890 Review fixes for A: simplify web service key handling
  5. Area fixes: [API tests] Ensure VAT posting setup in API document fixtures #12677 D1 VAT fixtures → [API tests] Ensure cancellation reason codes in API sales document tests #12678 D2 cancellation reasons → [API tests] Handle localized purchase invoice payment discounts in APIV1 tests #12679 D3 localized discounts → [API tests] Set sales quote document and posting dates in API tests #12680 D4 quote dates → [API tests] Assign a number series to API vendor payment journals #12681 D5 journal numbering → [API tests] Ignore localized fields in API document comparisons #12682 D6 field comparison → [API tests] Return shipment PDF selection and pdfDocument test isolation #12683 D7 PDF documents → [API tests] Improve APIV1 fixture and verification reliability #12684 D8 APIV1 reliability

Experiments (on D8, do not merge): #12685 E single tenant, #12686 F no clean execution. Combined validation (do not merge): #12687, same tree as D8.

Platform: main already pins BCPlatform 30.0.56112.0, which includes the SQL connection-pool fix (AB#653457).

Note for CI: AL-Go's new-warning check needs a CI/CD baseline from the base branch, and features/* bases have none, so a PR build there fails with a 404. The current CI runs were triggered while these PRs targeted main, so their results are valid for the cumulative change.

@github-actions github-actions Bot added the AL: Apps (W1) Add-on apps for W1 label Oct 12, 2026
@github-actions github-actions Bot added the Team: Integrations GitHub request for Integrations area label Oct 12, 2026
@t-prda
Prangshuman Das (t-prda) changed the base branch from features/646383-stack-d3-localized-discounts to main October 12, 2026 11:13
@github-actions github-actions Bot added Build: Automation Workflows and other setup in .github folder Build: scripts & configs Build scripts and configuration files labels Oct 12, 2026
@github-actions github-actions Bot added this to the Version 30.0 milestone Oct 12, 2026
@github-actions github-actions Bot added Team: SCM GitHub request for SCM area and removed Team: Integrations GitHub request for Integrations area labels Oct 12, 2026
@t-prda
Prangshuman Das (t-prda) force-pushed the features/646383-stack-d4-quote-dates branch from fe76e3a to 89f5e34 Compare October 12, 2026 11:28
@t-prda
Prangshuman Das (t-prda) changed the base branch from main to features/646383-stack-d3-localized-discounts October 12, 2026 12:29
@t-prda
Prangshuman Das (t-prda) added this pull request to stack #12697 October 12, 2026 15:38
@t-prda
Prangshuman Das (t-prda) marked this pull request as ready for review October 13, 2026 08:58
@t-prda
Prangshuman Das (t-prda) requested a review from a team October 13, 2026 08:58
@alexei-dobriansky

Copy link
Copy Markdown
Contributor

Good Sense Reviewer - Round 1

Recommendation: Accept

What this PR does

This change sets the sales quote Posting Date and Document Date to WorkDate in the shared APIV1 and APIV2 test fixtures, then removes the exclusions for the quote-to-order tests. The Posting Date validation may synchronize the Document Date when that setup is enabled; the following explicit Document Date validation leaves both fields equal, and Modify(true) persists the values before the API call.

The helper also creates quotes for the get, delete, send, and invoice scenarios. Giving all of those fixtures the same valid dates is consistent across both API versions and does not change production code or a public surface.

Problem-solution fit

Fit: Strong

The failing quote conversion can have a Document Date later than its Posting Date under some date setups. Setting both dates to WorkDate directly removes that mismatch, and the exact APIV1 and APIV2 tests are no longer excluded.

Suggestions

None.

Risk assessment and necessity

Risk: The change is limited to test data, but the shared fixture is used by several sales quote scenarios. All affected tests now use normalized dates; no production logic, event publisher, or public API is changed.

Necessity: The change is needed to make quote conversion deterministic across date and localization setups and to restore coverage for both API versions. The implementation is small and mirrored between APIV1 and APIV2.


[AI-PR-REVIEW] version=1 promptVersion=4 system=github pr=12680 round=1 by=alexei-dobriansky at=2026-10-13T22:27:53.9543633Z lastSha=89f5e34c847b2252c62db882ea4025577a0dc92a reviewKey=dc7878492d42d84685df52125ccbc59da41897c5233b0fcc7c552cdd64942f59 suggestions=none

@t-prda
Prangshuman Das (t-prda) requested a review from a team as a code owner October 14, 2026 09:27
@t-prda
Prangshuman Das (t-prda) requested a review from a team October 14, 2026 09:27
@t-prda
Prangshuman Das (t-prda) force-pushed the features/646383-stack-d4-quote-dates branch from 89f5e34 to 1fd42b2 Compare October 14, 2026 09:27
@github-actions github-actions Bot removed Build: Automation Workflows and other setup in .github folder Build: scripts & configs Build scripts and configuration files labels Oct 14, 2026
@t-prda Prangshuman Das (t-prda) added the Team: Finance GitHub request for Finance area label Oct 14, 2026
@github-actions github-actions Bot removed the Team: Finance GitHub request for Finance area label Oct 14, 2026
@t-prda
Prangshuman Das (t-prda) force-pushed the features/646383-stack-d4-quote-dates branch from 1fd42b2 to d218888 Compare October 14, 2026 09:47
@t-prda
Prangshuman Das (t-prda) force-pushed the features/646383-stack-d4-quote-dates branch from d218888 to e1c5c34 Compare October 14, 2026 10:30
@t-prda
Prangshuman Das (t-prda) force-pushed the features/646383-stack-d4-quote-dates branch from e1c5c34 to faf8f31 Compare October 14, 2026 14:04
@alexei-dobriansky

Copy link
Copy Markdown
Contributor

Good Sense Reviewer - Round 2

Recommendation: Accept

What this PR does

This change sets deterministic, license-safe posting and document dates for sales quotes in the APIV1 and APIV2 tests, then re-enables both quote-to-order tests. Every caller initializes the safe work date, and the matching changes keep both API versions aligned.

Status of previous suggestions

No suggestions were raised in round 1.

New observations (commits since round 1)

None. The full current diff was reviewed because the earlier commit is no longer reachable after the rebase.

Risk assessment and necessity

Risk: Low. The change only adjusts test setup and disabled-test manifests. It does not change production behavior.

Necessity: The date setup is required to run the quote-to-order tests reliably with the license-safe work date and restore their coverage.


[AI-PR-REVIEW] version=1 promptVersion=4 system=github pr=12680 round=2 by=alexei-dobriansky at=2026-10-14T22:46:56.3626606Z lastSha=faf8f315df8a497a17232b86c502218aba6107e9 reviewKey=d62aeb03e08849a846b72dfdf7141442145c8daecf31fffeec9b0c5d75fd9da9 suggestions=none parentRound=1

Align quote dates with the work date before converting to an order and re-enable the
make-order tests.

AB#646383
AB#653393

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
@t-prda
Prangshuman Das (t-prda) force-pushed the features/646383-stack-d4-quote-dates branch from 5876aaa to 8b174d1 Compare October 15, 2026 12:56
@alexei-dobriansky

Copy link
Copy Markdown
Contributor

Good Sense Reviewer - Round 3

Recommendation: Accept

What this PR does

This change sets the posting date and document date to the license-safe work date in the shared APIV1 and APIV2 sales quote fixtures, then re-enables the quote-to-order tests. Validating the posting date first and the document date second leaves both fields aligned before Modify(true) persists the quote, which directly removes the date mismatch during conversion.

Status of previous suggestions

No suggestions were raised in round 2.

New observations (commits since round 2)

None. The full current diff was reviewed because the previous reviewed commit is no longer reachable after the rebase.

Risk assessment and necessity

Risk: Low. The shared fixture also supplies quotes to get, delete, send, and invoice tests, so those tests now receive normalized dates too. The change remains test-only, is mirrored across both API versions, and does not alter production behavior or a public surface.

Necessity: Aligning both dates makes quote conversion deterministic across date and localization setups and restores the two excluded quote-to-order tests. The scope is limited to the affected fixtures and exclusion entries.


[AI-PR-REVIEW] version=1 promptVersion=4 system=github pr=12680 round=3 by=alexei-dobriansky at=2026-10-15T13:42:00.6427568Z lastSha=8b174d1041c5aea3db785b2d089b5e6a3edb3b59 reviewKey=645b79ddb0399775033df998b5b428404d774f2e1fbb3a6cc2ba934e44949927 suggestions=none parentRound=2

dominicstarkl pushed a commit to dominicstarkl/BCApps that referenced this pull request Oct 15, 2026
Review focus: ``MicrosoftTestAuthProvider`` (about 60 lines) and the
enum default; the ``build/`` changes are deletions plus the anti-SSRF
line in ``NewBcContainer.ps1``.

Defaults API test authentication (`Library - Graph Mgt`) to the current
user's web service key. API tests no longer need per-app auth uptake or
a container password.

- `API Test Authentication` enum: `DefaultImplementation` = `Microsoft
Test Auth Provider`. Removes `No API Test Auth Provider` and the
explicit `Microsoft Test Environment` value.
- `Microsoft Test Auth Provider`: on-premises with NavUserPassword,
sends Basic auth with `UserId()` and the web service key. When the key
is missing or expired, a background session (`API Test Web Service Key`,
CU 131025) creates it with a 24h expiry and commits it, because the API
request runs in a separate server session. The caller's transaction is
never committed; the provider waits up to 60 s for the session and then
re-reads the key.
- `Library - Graph Mgt`: adds the `SetLicenseSafeWorkDate` and
`AddFieldToIgnoreIfExists` helpers used by later layers.
- Build: removes the container password and Key Vault credential
plumbing (`ApiTestCredential.psm1`, `Remove-ApiTestPassword.ps1`,
`PipelineFinalize` hooks and their tests). Keeps the clean-tenant
execution logic. Sets `NavHttpClientAntiSSRFEnabled=false` in the test
container, as NAV `RunALTests.ps1` does: since microsoft#12323, API tests call
the container's own endpoint through AL `HttpClient`, which anti-SSRF
blocks.
- CU 139494 `API Test Auth Provider Tests`: covers key creation and
renewal. Declares `TestHttpRequestPolicy = AllowAllOutboundRequests`
(NAV blocks outbound requests by default; microsoft#12694 covered the other API
tests).

Related:
[AB#646383](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/646383),
[AB#653393](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/653393)

### Stack (each PR shows only its own layer; merge bottom first)
1. microsoft#12674 A: web service key auth (base: `main`)
2. microsoft#12675 B: Expense API tests + clean test codeunit execution
3. microsoft#12676 C: re-enable APIV1/APIV2 API tests
4. microsoft#12890 Review fixes for A: simplify web service key handling
5. Area fixes: microsoft#12677 D1 VAT fixtures → microsoft#12678 D2 cancellation reasons →
microsoft#12679 D3 localized discounts → microsoft#12680 D4 quote dates → microsoft#12681 D5
journal numbering → microsoft#12682 D6 field comparison → microsoft#12683 D7 PDF documents
→ microsoft#12684 D8 APIV1 reliability

Experiments (on D8, do not merge): microsoft#12685 E single tenant, microsoft#12686 F no
clean execution. Combined validation (do not merge): microsoft#12687, same tree
as D8.

Platform: `main` already pins BCPlatform 30.0.56112.0, which includes
the SQL connection-pool fix
([AB#653457](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/653457)).

Note for CI: AL-Go's new-warning check needs a CI/CD baseline from the
base branch, and `features/*` bases have none, so a PR build there fails
with a 404. The current CI runs were triggered while these PRs targeted
`main`, so their results are valid for the cumulative change.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
dominicstarkl pushed a commit to dominicstarkl/BCApps that referenced this pull request Oct 15, 2026
Review focus: the Expense test changes and the auth-helper deletion; the
``enableCleanTestCodeunitExecution`` line. The large JSON diffs are
temporary disables, undone in C.

Re-enables the Expense Agent API tests on top of the default web service
key auth. No Key Vault password and no auth subscriber.

- Deletes `Expense API Test Auth Helper` and its usages.
- Re-applies the Expense fixes from microsoft#12325 (reverted in microsoft#12514):
`TravelRequestApproval`, Expense permission and spend-request tests, the
`ExpDetailTest` permission set, and `SpendRequestTests`.
- Turns on `enableCleanTestCodeunitExecution`, as microsoft#12325 did, so
`RequiredTestIsolation = Disabled` codeunits run in clean-tenant lanes.
- Expense disabled tests: keeps only the entries NAV master also
disables (12).
- Temporarily disables the unrelated APIV1/APIV2 tests that the clean
lanes start executing, the same entries microsoft#12325 added. They are
re-enabled in the next layers.

Related:
[AB#646383](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/646383),
[AB#653393](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/653393)

### Stack (each PR shows only its own layer; merge bottom first)
1. microsoft#12674 A: web service key auth (base: `main`)
2. microsoft#12675 B: Expense API tests + clean test codeunit execution
3. microsoft#12676 C: re-enable APIV1/APIV2 API tests
4. microsoft#12890 Review fixes for A: simplify web service key handling
5. Area fixes: microsoft#12677 D1 VAT fixtures → microsoft#12678 D2 cancellation reasons →
microsoft#12679 D3 localized discounts → microsoft#12680 D4 quote dates → microsoft#12681 D5
journal numbering → microsoft#12682 D6 field comparison → microsoft#12683 D7 PDF documents
→ microsoft#12684 D8 APIV1 reliability

Experiments (on D8, do not merge): microsoft#12685 E single tenant, microsoft#12686 F no
clean execution. Combined validation (do not merge): microsoft#12687, same tree
as D8.

Platform: `main` already pins BCPlatform 30.0.56112.0, which includes
the SQL connection-pool fix
([AB#653457](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/653457)).

Note for CI: AL-Go's new-warning check needs a CI/CD baseline from the
base branch, and `features/*` bases have none, so a PR build there fails
with a 404. The current CI runs were triggered while these PRs targeted
`main`, so their results are valid for the cumulative change.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91
dominicstarkl pushed a commit to dominicstarkl/BCApps that referenced this pull request Oct 15, 2026
Review focus: mostly mechanical. ``Initialize`` sets a license-safe work
date in each API test, and the JSON deletions re-enable tests. A few
files have small fixture or isolation tweaks.

Re-enables the APIV1, APIV2, IRS 1099 and E-Document API tests that pass
without area-specific fixes. Aligned with NAV master: only tests that
NAV master also runs are re-enabled.

- API test `Initialize` sets a license-safe work date. Adds minimal
fixture and isolation adjustments.
- Removes the APIV1/APIV2 exclusions, keeping only the entries fixed in
the following area PRs and the two `139806` methods NAV master disables.
Removes E-Doc `135575`.

Related:
[AB#646383](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/646383),
[AB#653393](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/653393)

### Stack (each PR shows only its own layer; merge bottom first)
1. microsoft#12674 A: web service key auth (base: `main`)
2. microsoft#12675 B: Expense API tests + clean test codeunit execution
3. microsoft#12676 C: re-enable APIV1/APIV2 API tests
4. microsoft#12890 Review fixes for A: simplify web service key handling
5. Area fixes: microsoft#12677 D1 VAT fixtures → microsoft#12678 D2 cancellation reasons →
microsoft#12679 D3 localized discounts → microsoft#12680 D4 quote dates → microsoft#12681 D5
journal numbering → microsoft#12682 D6 field comparison → microsoft#12683 D7 PDF documents
→ microsoft#12684 D8 APIV1 reliability

Experiments (on D8, do not merge): microsoft#12685 E single tenant, microsoft#12686 F no
clean execution. Combined validation (do not merge): microsoft#12687, same tree
as D8.

Platform: `main` already pins BCPlatform 30.0.56112.0, which includes
the SQL connection-pool fix
([AB#653457](https://dynamicssmb2.visualstudio.com/1fcb79e7-ab07-432a-a3c6-6cf5a88ba4a5/_workitems/edit/653457)).

Note for CI: AL-Go's new-warning check needs a CI/CD baseline from the
base branch, and `features/*` bases have none, so a PR build there fails
with a 404. The current CI runs were triggered while these PRs targeted
`main`, so their results are valid for the cumulative change.

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
Copilot-Session: 3952f078-a881-4da8-ad96-13b727e48a91

This branch was successfully deployed

1 active (outdated) deployment
triage — 1fd42b2a Deployed Oct 14, 2026 by t-prda via Classify team ownership #7799
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

AL: Apps (W1) Add-on apps for W1 Team: Integrations GitHub request for Integrations area

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants