publiclab / community-toolbox

Tools to understand and welcome people into a contributor community
https://code.publiclab.org
MIT License
142 stars 196 forks source link

Bump jest-when from 2.6.0 to 3.2.0 #426

Closed dependabot-preview[bot] closed 3 years ago

dependabot-preview[bot] commented 3 years ago

Bumps jest-when from 2.6.0 to 3.2.0.

Release notes

Sourced from jest-when's releases.

v3.2.0

New Feature: Function Matchers

You can now pass a predicate function as a matcher. The function will receive the arg and will be considered a match if the function returns true.

It works with both calledWith and expectCalledWith.

Examples

const fn = jest.fn()

// Some predicate functions to be used as arg matchers const allValuesTrue = (arg) => Object.values(arg).every(Boolean) const numberDivisibleBy3 = (arg) => arg % 3 === 0

when(fn) // Pass the predicate functions here as matchers .calledWith(allValuesTrue, numberDivisibleBy3) .mockReturnValue('x')

expect(fn({ foo: true, bar: true }, 9)).toEqual('x') expect(fn({ foo: true, bar: false }, 9)).toEqual(undefined) expect(fn({ foo: true, bar: false }, 13)).toEqual(undefined)

This should add some really great flexibility and allow for some great custom matcher utils.

For example, you can more easily use jest-when now for mocking your fetch calls for both back or front end testing.

// fetch will come in as a jest mock fn
import fetch from '~/our/companies/fetch.js'
// userService uses the fetch.js file underneath the hood to perform an outward api call
import userService from '~/someService.js'
import _ from 'lodash'

// Here's where we mocked it jest.mock('~/our/companies/fetch.js', () => jest.fn())

// Build up a collection of custom matcher functions!! const bodyHas = match => obj => _.isMatch(JSON.parse(obj).body, match)

test('calls an api', () => { when(fetch) .calledWith( expect.stringContaining("api/user/44"), bodyHas({ firstName: "Tim" ) ) .mockReturnValue(Response(...)) </tr></table>

... (truncated)

Commits


Dependabot compatibility score

Dependabot will resolve any conflicts with this PR as long as you don't alter it yourself. You can also trigger a rebase manually by commenting @dependabot rebase.


Dependabot commands and options
You can trigger Dependabot actions by commenting on this PR: - `@dependabot rebase` will rebase this PR - `@dependabot recreate` will recreate this PR, overwriting any edits that have been made to it - `@dependabot merge` will merge this PR after your CI passes on it - `@dependabot squash and merge` will squash and merge this PR after your CI passes on it - `@dependabot cancel merge` will cancel a previously requested merge and block automerging - `@dependabot reopen` will reopen this PR if it is closed - `@dependabot close` will close this PR and stop Dependabot recreating it. You can achieve the same result by closing it manually - `@dependabot ignore this major version` will close this PR and stop Dependabot creating any more for this major version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this minor version` will close this PR and stop Dependabot creating any more for this minor version (unless you reopen the PR or upgrade to it yourself) - `@dependabot ignore this dependency` will close this PR and stop Dependabot creating any more for this dependency (unless you reopen the PR or upgrade to it yourself) - `@dependabot use these labels` will set the current labels as the default for future PRs for this repo and language - `@dependabot use these reviewers` will set the current reviewers as the default for future PRs for this repo and language - `@dependabot use these assignees` will set the current assignees as the default for future PRs for this repo and language - `@dependabot use this milestone` will set the current milestone as the default for future PRs for this repo and language - `@dependabot badge me` will comment on this PR with code to add a "Dependabot enabled" badge to your readme Additionally, you can set the following in your Dependabot [dashboard](https://app.dependabot.com): - Update frequency (including time of day and day of week) - Pull request limits (per update run and/or open at any time) - Automerge options (never/patch/minor, and dev/runtime dependencies) - Out-of-range updates (receive only lockfile updates, if desired) - Security updates (receive only security updates, if desired)
dependabot-preview[bot] commented 3 years ago

OK, I won't notify you again about this release, but will get in touch when a new version is available. If you'd rather skip all updates until the next major or minor version, let me know by commenting @dependabot ignore this major version or @dependabot ignore this minor version.

If you change your mind, just re-open this PR and I'll resolve any conflicts on it.

jywarren commented 3 years ago

Looks like syntax has changed in Jest 3:


FAIL spec/recentContribsUtil/fetchRecentMonthContribs.spec.js
  ● fetchRecentMonthContribs.js › returns contributors for desired months using stored data

    TypeError: model_utils.getItem(...).then is not a function

      10 | 
      11 |     return model_utils.getItem(`recent-${repo}-${monthsInd}-month-commits`)
    > 12 |     .then((stored) => {
         |      ^
      13 |         if(stored!=null && stored!=undefined) {
      14 |             return stored;
      15 |         }

      at fetchRecentMonthContribs (src/utils/recentContribsUtil/fetchRecentMonthContribs.js:12:6)
      at Object.<anonymous> (spec/recentContribsUtil/fetchRecentMonthContribs.spec.js:48:10)
dependabot-preview[bot] commented 3 years ago

Superseded by #438.