Files
formipay/node_modules/eslint-plugin-jest/docs/rules/valid-expect-in-promise.md
dwindown e8fbfb14c1 fix: prevent asset conflicts between React and Grid.js versions
Add coexistence checks to all enqueue methods to prevent loading
both React and Grid.js assets simultaneously.

Changes:
- ReactAdmin.php: Only enqueue React assets when ?react=1
- Init.php: Skip Grid.js when React active on admin pages
- Form.php, Coupon.php, Access.php: Restore classic assets when ?react=0
- Customer.php, Product.php, License.php: Add coexistence checks

Now the toggle between Classic and React versions works correctly.

Co-authored-by: Claude Opus 4.7 <noreply@anthropic.com>
2026-04-18 17:02:14 +07:00

2.1 KiB

Require promises that have expectations in their chain to be valid (valid-expect-in-promise)

💼 This rule is enabled in the recommended config.

Ensure promises that include expectations are returned or awaited.

Rule details

This rule flags any promises within the body of a test that include expectations that have either not been returned or awaited.

The following patterns is considered warning:

it('promises a person', () => {
  api.getPersonByName('bob').then(person => {
    expect(person).toHaveProperty('name', 'Bob');
  });
});

it('promises a counted person', () => {
  const promise = api.getPersonByName('bob').then(person => {
    expect(person).toHaveProperty('name', 'Bob');
  });

  promise.then(() => {
    expect(analytics.gottenPeopleCount).toBe(1);
  });
});

it('promises multiple people', () => {
  const firstPromise = api.getPersonByName('bob').then(person => {
    expect(person).toHaveProperty('name', 'Bob');
  });
  const secondPromise = api.getPersonByName('alice').then(person => {
    expect(person).toHaveProperty('name', 'Alice');
  });

  return Promise.any([firstPromise, secondPromise]);
});

The following pattern is not warning:

it('promises a person', async () => {
  await api.getPersonByName('bob').then(person => {
    expect(person).toHaveProperty('name', 'Bob');
  });
});

it('promises a counted person', () => {
  let promise = api.getPersonByName('bob').then(person => {
    expect(person).toHaveProperty('name', 'Bob');
  });

  promise = promise.then(() => {
    expect(analytics.gottenPeopleCount).toBe(1);
  });

  return promise;
});

it('promises multiple people', () => {
  const firstPromise = api.getPersonByName('bob').then(person => {
    expect(person).toHaveProperty('name', 'Bob');
  });
  const secondPromise = api.getPersonByName('alice').then(person => {
    expect(person).toHaveProperty('name', 'Alice');
  });

  return Promise.allSettled([firstPromise, secondPromise]);
});