@globisnv/cypress-core 0.0.6 → 0.0.8

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/README.md CHANGED
@@ -30,7 +30,7 @@ What each part of the version bump means:
30
30
  | minor | A new command / blueprint / API surface, backwards compatible |
31
31
  | patch | Bugfixes only |
32
32
 
33
- Releases are cut via the [Create Release](.github/workflows/release.yml) GitHub Action (Actions → Create Release → Run workflow), which bumps the version, tags, publishes to npm, and creates the GitHub Release.
33
+ See [Cutting a release](#cutting-a-release) for how a bump actually gets published.
34
34
 
35
35
  | Core version | Minimum globis-online version |
36
36
  | --- | --- |
@@ -38,6 +38,19 @@ Releases are cut via the [Create Release](.github/workflows/release.yml) GitHub
38
38
 
39
39
  The floor is recorded in `package.json` under `globisOnline.minVersion` (machine-readable, in case tooling wants to check it later) and here in this table (human-readable, updated on every release alongside `CHANGELOG.md`). `globis-cypress` stays pinned to the latest core version — since it's Globis's own suite, it's the first thing to catch a globis-online release breaking something, before any customer repo would.
40
40
 
41
+ ## Cutting a release
42
+
43
+ A release is two phases, because the `develop` ruleset requires a reviewed PR — so the version bump takes the same route as every other change instead of CI trying to push past the ruleset.
44
+
45
+ 1. **Actions → [Prepare Release](.github/workflows/release-pr.yml) → Run workflow**, pick `patch` / `minor` / `major`. It bumps `package.json`, renames the `## Unreleased` heading in `CHANGELOG.md` to `## X.Y.Z` and opens a fresh empty `## Unreleased` above it, and opens a `chore(release): vX.Y.Z` PR. Nothing is published yet.
46
+ 2. **Check the changelog section on that PR** (it becomes the GitHub Release notes) and merge it. [Publish](.github/workflows/publish.yml) then builds, lints, publishes to npm, and creates the tag and GitHub Release.
47
+
48
+ Write changelog entries under the `## Unreleased` heading as you merge work, rather than at release time — the release just renames that heading and opens a new one, so there is always a section at the top to write into and the file never needs reorganising by hand. If there is no `## Unreleased` section when you cut a release, the workflow adds an empty `## X.Y.Z` stub and warns, and you fill it in on the PR.
49
+
50
+ Publishing uses [npm trusted publishing](https://docs.npmjs.com/trusted-publishers/) over OIDC, so there is no `NPM_TOKEN` and no PAT anywhere in the release path — the publish job's only write scope is the tag and release it creates. The trusted publisher on npm must name **`publish.yml`** as the workflow. npm provenance stays off: it isn't supported from a private repository.
51
+
52
+ Because the bump lands in git *before* anything reaches npm, a failed publish never leaves the registry ahead of the repository — re-running the workflow after a fix picks up where it left off, and a version already on npm is skipped rather than retried.
53
+
41
54
  ---
42
55
 
43
56
  ## Setting up a new customer repo
@@ -3,7 +3,7 @@ export type objLogisticContractVolumeConstraint = {
3
3
  fromCountry?: string;
4
4
  toCountry?: string;
5
5
  period?: string;
6
- limit?: string;
6
+ maxOrders?: string;
7
7
  flagActive?: CheckState;
8
8
  };
9
9
  export declare const GLO_enterLogisticContractVolumeConstraint: (obj: objLogisticContractVolumeConstraint) => void;
@@ -3,6 +3,6 @@ export const GLO_enterLogisticContractVolumeConstraint = (obj) => {
3
3
  cy.GLO_popupWindow([formName, 'from_country_id'], obj.fromCountry);
4
4
  cy.GLO_popupWindow([formName, 'to_country_id'], obj.toCountry);
5
5
  cy.GLO_addInput([formName, 'period'], obj.period);
6
- cy.GLO_addInput([formName, 'limit'], obj.limit);
6
+ cy.GLO_addInput([formName, 'max_orders'], obj.maxOrders);
7
7
  cy.GLO_checkbox([formName, 'flag_active'], obj.flagActive);
8
8
  };
@@ -366,7 +366,10 @@ const waitForProgressBar = () => {
366
366
  let attempts = 0;
367
367
  const log = Cypress.log({ name: 'checkLoadingIndicator', message: 'Waiting for the progress bar…', autoEnd: false, timeout: 0 });
368
368
  const checkStatus = (resolve, reject) => {
369
- cy.get('body', { log: false }).then(($body) => {
369
+ // cy.document(), not cy.get('body'): commands called from inside a .within() block - such as
370
+ // GLO_clickRowInGrid - would scope that query to the within subject and never find the body.
371
+ cy.document({ log: false }).then((doc) => {
372
+ const $body = Cypress.$(doc.body);
370
373
  if (!$body.find(progressBarSelector).length) {
371
374
  log.end();
372
375
  resolve();
@@ -1765,12 +1768,14 @@ Cypress.Commands.add('GLO_fillInfieldInGrid', (selector, rowFilter, columnId, va
1765
1768
  return;
1766
1769
  if (typeof rowFilter === 'string') {
1767
1770
  cy.GLO_getAllRowsInGrid().filter(`:contains("${rowFilter}")`).find(`[col-id="${columnId}"]`).click();
1771
+ cy.wait(500); // Else both click and dblclick fire too fast
1768
1772
  cy.GLO_getAllRowsInGrid().filter(`:contains("${rowFilter}")`).find(`[col-id="${columnId}"]`).dblclick();
1769
1773
  }
1770
1774
  else {
1771
1775
  cy.GLO_getElement(selector).within(() => {
1772
1776
  cy.GLO_clickRowInGrid(rowFilter, columnId);
1773
1777
  });
1778
+ cy.wait(500); // Else both click and dblclick fire too fast
1774
1779
  cy.GLO_dblClickRowInGrid(row, selector, rowFilter, columnId, skipCheck);
1775
1780
  }
1776
1781
  cy.get(gridInputType === 'aggrid-texteditor-without-enter' ? gridInput : gridInputType, { timeout: 1000 }).should('exist');
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@globisnv/cypress-core",
3
- "version": "0.0.6",
3
+ "version": "0.0.8",
4
4
  "description": "Core building blocks for Globis Cypress E2E tests",
5
5
  "license": "UNLICENSED",
6
6
  "type": "module",