mirror of
https://github.com/vale981/apollo-server
synced 2025-03-06 10:11:40 -05:00

* import jest * remove mocha, chai, sinon * fix JSON parsing for package.json * replace import mocha, chai, sinon with jest * add jest as test npm script * remove dependency on mocha types * errors: remove unused jest tests * move tests to __tests__ folders * add jest types to root tsconfig * fix tsconfig include excludes * .to.equal -> toEqual * .true -> .toBe(true) * .to.deep.equal -> .toEqual * .to.exist -> .toBeDefined() * .to.contain -> .toMatch * .to.match -> .toMatch * to.be.undefined -> .toBeUndefined() * not.toBeDefined -> .toBeUndefined * bring integration test up to date with past changes * remove message from expect * .null -> .toBe(null) * expect.fail -> done.fail * callsFake -> jest.fn * mocha mock calls -> jest * .not.to.exist -> .toBeUndefined() * callCount -> mocks.calls.length * returns -> jest.fn() * .equals -> .toEqual * fix relative imports * remove string in expects and place as comment * remove Fibers from runQuery * restore -> mockRestore * before -> beforeAll * after -> afterAll * fix async_hooks test and Promise await * remove jest from testsuite package json * remove unnecessary apollo-server-env setup * add start of cloudflare tests * this.timeout -> timeout argument * express: fix relative require * import gql tag properly * .to.throw -> .toThrow * .to.be.instanceof -> .toBeInstanceOf * remove console log check test * done(Error) -> done.fail(Error) * done -> done.fail * change port numbers, since jest runs in parallel * fix toBeUndefined for null checks * make engine port unique in testsuite * make data source rest endpoint port unique * add coverage scripts * travis npm script -> cricle script * make engine port random * change ports to not conflict across integrations * increase node version for apollo-server-hapi * add node versioning to prevent hapi tests from running * move jest dependencies to the root package.json * make hapi port unique * fix port reference in hapi tests
99 lines
3.4 KiB
YAML
99 lines
3.4 KiB
YAML
version: 2
|
|
|
|
#
|
|
# Reusable Snippets!
|
|
#
|
|
# These are re-used by the various tests below, to avoid repetition.
|
|
#
|
|
run_install_desired_npm: &run_install_desired_npm
|
|
run:
|
|
# Due to a bug, npm upgrades from the version of npm that ships with
|
|
# Node.js 6 (npm v3.10.10) go poorly and generally causes other problems
|
|
# with the environment. Since yarn is already available here we can just
|
|
# use that to work-around the issue. It's possible that npm cleanup might
|
|
# prevent this from being necessary, but this installation can be switched
|
|
# to use `npm` (rather than `yarn`) once Node 6 is no longer tested below.
|
|
name: Install npm@5, but with yarn.
|
|
command: sudo yarn global add npm@5
|
|
|
|
# These are the steps used for each version of Node which we're testing
|
|
# against. Thanks to YAMLs inability to merge arrays (though it is able
|
|
# to merge objects), every version of Node must use the exact same steps,
|
|
# or these steps would need to be repeated in a version of Node that needs
|
|
# something different. Probably best to avoid that, out of principle, though.
|
|
common_test_steps: &common_test_steps
|
|
steps:
|
|
- *run_install_desired_npm
|
|
- checkout
|
|
- run: cat ./packages/*/package.json > package-checksum
|
|
- restore_cache:
|
|
key: dependency-cache-{{ checksum "package.json" }}-{{ checksum "package-checksum" }}
|
|
- run: npm --version
|
|
- run: npm install
|
|
- save_cache:
|
|
key: dependency-cache-{{ checksum "package.json" }}-{{ checksum "package-checksum" }}
|
|
paths:
|
|
- ./node_modules
|
|
- run: npm run circle
|
|
|
|
# Important! When adding a new job to `jobs`, make sure to define when it
|
|
# executes by also adding it to the `workflows` section below!
|
|
jobs:
|
|
|
|
# Platform tests, each with the same tests but different platform or version.
|
|
# The docker tag represents the Node.js version and the full list is available
|
|
# at https://hub.docker.com/r/circleci/node/.
|
|
Node.js 6:
|
|
docker: [ { image: 'circleci/node:6' } ]
|
|
<<: *common_test_steps
|
|
|
|
Node.js 8:
|
|
docker: [ { image: 'circleci/node:8' } ]
|
|
<<: *common_test_steps
|
|
|
|
Node.js 10:
|
|
docker: [ { image: 'circleci/node:10' } ]
|
|
<<: *common_test_steps
|
|
|
|
# Other tests, unrelated to typical code tests.
|
|
Linting:
|
|
docker: [ { image: 'circleci/node:8' } ]
|
|
steps:
|
|
# (speed) Intentionally omitted, unnecessary, run_install_desired_npm.
|
|
- checkout
|
|
# (speed) --ignore-scripts to skip unnecessary Lerna build during linting.
|
|
- run: npm install --ignore-scripts
|
|
- run: npm run lint
|
|
Docs:
|
|
docker: [ { image: 'circleci/node:8' } ]
|
|
steps:
|
|
# (speed) Intentionally omitted, unnecessary, run_install_desired_npm.
|
|
- checkout
|
|
- restore_cache:
|
|
key: dependency-cache-{{ checksum "./docs/package.json" }}
|
|
# (speed) Ignore scripts to skip the Lerna build stuff for linting.
|
|
- run: npm install-test --prefix ./docs
|
|
- save_cache:
|
|
key: dependency-cache-{{ checksum "./docs/package.json" }}
|
|
paths:
|
|
- ./docs/node_modules
|
|
|
|
ignore_doc_branches: &ignore_doc_branches
|
|
filters:
|
|
branches:
|
|
# If 'docs' is found, with word boundaries on either side, skip.
|
|
ignore: /.*?\bdocs\b.*/
|
|
|
|
workflows:
|
|
version: 2
|
|
Build and Test:
|
|
jobs:
|
|
- Node.js 6:
|
|
<<: *ignore_doc_branches
|
|
- Node.js 8:
|
|
<<: *ignore_doc_branches
|
|
- Node.js 10:
|
|
<<: *ignore_doc_branches
|
|
- Linting:
|
|
<<: *ignore_doc_branches
|
|
- Docs
|