Files
ai-course/node_modules/eslint-plugin-jest/docs/rules/valid-expect-in-promise.md
KQL ce6aa207e9 fix: 修复图片路径以适配GitHub Pages base path
- 将所有图片路径从绝对路径改为使用 process.env.PUBLIC_URL
- 修复 HomePage.tsx 中所有图片引用
- 修复 CoursePage.tsx 中所有图片引用
- 确保图片在 GitHub Pages 上正确加载

🤖 Generated with [Claude Code](https://claude.com/claude-code)

Co-Authored-By: Claude <noreply@anthropic.com>
2025-11-04 09:24:45 +08:00

1.9 KiB

Ensure promises that have expectations in their chain are valid (valid-expect-in-promise)

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]);
});