Commit graph

144 commits

Author SHA1 Message Date
Jesse Rosenberger
5b83883233
Publish
- apollo-cache-control@0.3.0-alpha.1
 - apollo-datasource-rest@0.2.0-alpha.1
 - apollo-datasource@0.2.0-alpha.1
 - apollo-engine-reporting-protobuf@0.1.0-alpha.1
 - apollo-engine-reporting@0.1.0-alpha.1
 - apollo-server-cache-memcached@0.2.0-alpha.1
 - apollo-server-cache-redis@0.2.0-alpha.1
 - apollo-server-caching@0.2.0-alpha.1
 - apollo-server-cloud-functions@2.2.0-alpha.1
 - apollo-server-cloudflare@2.2.0-alpha.1
 - apollo-server-core@2.2.0-alpha.1
 - apollo-server-env@2.1.0-alpha.1
 - apollo-server-express@2.2.0-alpha.1
 - apollo-server-hapi@2.2.0-alpha.1
 - apollo-server-integration-testsuite@2.2.0-alpha.1
 - apollo-server-koa@2.2.0-alpha.1
 - apollo-server-lambda@2.2.0-alpha.1
 - apollo-server-micro@2.2.0-alpha.1
 - apollo-server-plugin-base@0.1.0-alpha.1
 - apollo-server@2.2.0-alpha.1
 - apollo-tracing@0.3.0-alpha.1
 - graphql-extensions@0.3.0-alpha.1
2018-10-26 21:28:15 +03:00
James Baxley
8b918e5bb6 fix failing test for default branch name 2018-10-26 20:19:30 +03:00
James Baxley
a729831d03 Support new protobuf fields in reporting
This commit supports two new concepts for reporting:

1. Client identity
2. Schema awareness

Client identity allows the GraphQLRequestContext to be mapped into
`clientId`, `clientName`, and `clientVersion` which can be used to
filter and view requests and metrics by client information.

Schema awareness introduces schema branches which allow arbitrary
strings to generate new "branches" (or variants) of a schema.
2018-10-26 20:19:30 +03:00
Jesse Rosenberger
1f8570b21d (test) Ensures the willStart event is triggered before a request. 2018-10-26 15:07:13 +03:00
Martijn Walraven
c1b0af18be
Add delete method to mock cache in integration tests 2018-10-25 14:40:57 +03:00
Jesse Rosenberger
9a69ad3f3a
Merge branch 'master' into testing-improvements 2018-10-12 14:58:04 +03:00
Martijn Walraven
4fac07b8f1 Consistently leave out explicit tsconfig.json when referring to TypeScript project 2018-10-12 13:34:07 +02:00
Martijn Walraven
304074f336 Expose global fetch and URL types to avoid relying on dom lib 2018-10-11 23:10:45 +02:00
Jesse Rosenberger
dec2b94a0e
Publish
- apollo-cache-control@0.3.0-alpha.0
 - apollo-datasource-rest@0.2.0-alpha.0
 - apollo-datasource@0.2.0-alpha.0
 - apollo-engine-reporting-protobuf@0.1.0-alpha.0
 - apollo-engine-reporting@0.1.0-alpha.0
 - apollo-server-cache-memcached@0.2.0-alpha.0
 - apollo-server-cache-redis@0.2.0-alpha.0
 - apollo-server-caching@0.2.0-alpha.0
 - apollo-server-cloud-functions@2.2.0-alpha.0
 - apollo-server-cloudflare@2.2.0-alpha.0
 - apollo-server-core@2.2.0-alpha.0
 - apollo-server-env@2.1.0-alpha.0
 - apollo-server-errors@2.1.0-alpha.0
 - apollo-server-express@2.2.0-alpha.0
 - apollo-server-hapi@2.2.0-alpha.0
 - apollo-server-integration-testsuite@2.2.0-alpha.0
 - apollo-server-koa@2.2.0-alpha.0
 - apollo-server-lambda@2.2.0-alpha.0
 - apollo-server-micro@2.2.0-alpha.0
 - apollo-server-plugin-base@0.1.0-alpha.0
 - apollo-server@2.2.0-alpha.0
 - apollo-tracing@0.3.0-alpha.0
 - graphql-extensions@0.3.0-alpha.0
2018-10-10 22:30:54 +03:00
C.J. Winslow
84bc8346cc
Pass the context request and response extension methods (#1547)
* Pass the context along to all the extension methods

Addresses #1343

With this change you should now be able to implement an extension like so:

```javascript
class MyErrorTrackingExtension extends GraphQLExtension {
    willSendResponse(o) {
        const { context, graphqlResponse } = o

        context.trackErrors(graphqlResponse.errors)

        return o
    }
}
```

Edit by @evans :
fixes #1343
fixes #614 as the request object can be taken from context or from requestDidStart
fixes #631 ""

* Remove context from extra extension functions

The context shouldn't be necessary for format, parse, validation, and
execute. Format generally outputs the state of the extension. Parse and
validate don't depend on the context. Execution includes the context
argument as contextValue

* Move change entry under vNext
2018-10-10 19:25:37 +03:00
Martijn Walraven
960810c3f2 Remove jest types from tsconfig.base and add it to test configs 2018-10-09 12:02:11 +02:00
Martijn Walraven
f4d3a37f78 Fix failing tests by passing in structured engine apiKey
Since activating the EngineReportingAgent is now dependent on being able to extract an engineServiceId from the API key, tests need to specify one that follows the expected structure.
2018-10-06 08:39:39 +02:00
Martijn Walraven
282ea7e022 Merge remote-tracking branch 'origin/typescript-project-references' into abernix/re-new-request-pipeline 2018-10-06 03:49:36 +02:00
Martijn Walraven
8932091e67 Add root level tsconfig.json as entry point 2018-10-05 21:48:49 +02:00
Martijn Walraven
1aee215e68 Switch to tsc --build and remove run scripts from packages 2018-10-05 17:48:34 +02:00
Martijn Walraven
fcaa6ad79d Enable TypeScript project references 2018-10-05 17:47:29 +02:00
Tim Griesser
261994ca7c
Allow an optional function to resolve the rootValue (#1555)
* Allow an optional function to resolve the rootValue

Passes the parsed DocumentNode AST to determine the root value,
useful when providing a different rootValue for query vs mutation

* Add API docs for rootValue
2018-09-27 16:57:46 +03:00
Martijn Walraven
358b348677
Fix full lifecycle test with Engine reporting 2018-09-27 16:46:45 +03:00
Jesse Rosenberger
38e7b6a5b6
Revert "Allow an optional function to resolve the rootValue (#1555)"
This reverts commit 4175f1b9cd.
2018-09-27 16:46:39 +03:00
Jesse Rosenberger
2b470e1c11
Revert "Pass the context request and response extension methods (#1547)"
This reverts commit 408198e5ac.
2018-09-27 16:36:28 +03:00
Jesse Rosenberger
c9375c405b
Adjust tests which are Node.js version specific to use describe.skip.
The techniques previously used to skip particular tests for particular
Node.js versions (for example, file uploads, Hapi, etc.) were problematic in
a couple ways:

1. `return`-ing outside a function (say, at the top level of a module) is
   not valid ECMAScript.  While it works in this current state, it only works
   because of Babel's wrapping scope.  As we move toward less and less
   transpiled modules, this would become problematic anyway, but it's a
   short-term blocker for me since I intend on dropping the `skipBabel` option
   we currently pass to` `ts-jest` in its current (`package.json`)
   configuration. (My editor also dislikes top-level `return`, expectedly.)

2. By `return`-ing from a test which we wish to skip conditionally, we avoid
   the awareness which is provided by Jest (automatically) when using its
   built-in `.skip` helpers.  By switching to technique I've employed here,
   we're able to see `<num> skipped` in Jest's output and (rightfully) be able
   to question why something is being skipped.

By using the `atLeastMajorNodeVersion` helper, we'll also be able to more
easily find where this pattern is used in test-cases, to more easily
re-evaluate their use-cases when we add support newer Node.js versions.
2018-09-26 22:44:32 +03:00
Hugh Willson
dd86fa8a29 Re-enable Typescript esModuleInterop (#1699)
`esModuleInterop` was enabled in
e4164c8892
to help with importing from packages that use default exports.
Those changes were reverted in
https://github.com/apollographql/apollo-server/pull/1210
to work around a few reported issues. Those issues are no longer
relevant, so this commit re-enables `esModuleInterop`, and
updates all default imports to use the more common (standard)
import syntax.
2018-09-21 16:43:33 +03:00
Tim Griesser
4175f1b9cd Allow an optional function to resolve the rootValue (#1555)
* Allow an optional function to resolve the rootValue

Passes the parsed DocumentNode AST to determine the root value,
useful when providing a different rootValue for query vs mutation

* Add API docs for rootValue
2018-09-20 11:47:40 -07:00
Evans Hauser
86dd95e223
Publish
- apollo-cache-control@0.2.5
 - apollo-engine-reporting@0.0.6
 - apollo-server-cloud-functions@2.1.0
 - apollo-server-cloudflare@2.1.0
 - apollo-server-core@2.1.0
 - apollo-server-express@2.1.0
 - apollo-server-hapi@2.1.0
 - apollo-server-integration-testsuite@2.1.0
 - apollo-server-koa@2.1.0
 - apollo-server-lambda@2.1.0
 - apollo-server-micro@2.1.0
 - apollo-server@2.1.0
 - apollo-tracing@0.2.5
 - graphql-extensions@0.2.1
2018-09-18 15:26:48 -07:00
Evans Hauser
5adae649e3
Publish
- apollo-cache-control@0.2.4
 - apollo-engine-reporting@0.0.5
 - apollo-server-cloud-functions@2.0.4
 - apollo-server-cloudflare@2.0.5
 - apollo-server-core@2.0.7
 - apollo-server-express@2.0.7
 - apollo-server-hapi@2.0.7
 - apollo-server-integration-testsuite@2.0.7
 - apollo-server-koa@2.0.7
 - apollo-server-lambda@2.0.7
 - apollo-server-micro@2.0.7
 - apollo-server@2.0.8
 - apollo-tracing@0.2.4
 - graphql-extensions@0.2.0
2018-09-14 10:35:33 -07:00
C.J. Winslow
408198e5ac Pass the context request and response extension methods (#1547)
* Pass the context along to all the extension methods

Addresses #1343 

With this change you should now be able to implement an extension like so:

```javascript
class MyErrorTrackingExtension extends GraphQLExtension {
    willSendResponse(o) {
        const { context, graphqlResponse } = o

        context.trackErrors(graphqlResponse.errors)

        return o
    }
}
```

Edit by @evans :
fixes #1343
fixes #614 as the request object can be taken from context or from requestDidStart
fixes #631 ""

* Remove context from extra extension functions

The context shouldn't be necessary for format, parse, validation, and
execute. Format generally outputs the state of the extension. Parse and
validate don't depend on the context. Execution includes the context
argument as contextValue

* Move change entry under vNext
2018-09-07 18:10:30 -07:00
Martijn Walraven
996c73063a Publish
- apollo-engine-reporting@0.0.4
 - apollo-server-cloud-functions@2.0.3
 - apollo-server-cloudflare@2.0.4
 - apollo-server-core@2.0.6
 - apollo-server-express@2.0.6
 - apollo-server-hapi@2.0.6
 - apollo-server-integration-testsuite@2.0.6
 - apollo-server-koa@2.0.6
 - apollo-server-lambda@2.0.6
 - apollo-server-micro@2.0.6
 - apollo-server@2.0.7
2018-09-05 17:33:16 +02:00
Martijn Walraven
b80a8f050c Publish
- apollo-cache-control@0.2.3
 - apollo-datasource-rest@0.1.5
 - apollo-datasource@0.1.3
 - apollo-engine-reporting@0.0.3
 - apollo-server-cache-memcached@0.1.3
 - apollo-server-cache-redis@0.1.3
 - apollo-server-cloud-functions@2.0.2
 - apollo-server-cloudflare@2.0.3
 - apollo-server-core@2.0.5
 - apollo-server-env@2.0.3
 - apollo-server-express@2.0.5
 - apollo-server-hapi@2.0.5
 - apollo-server-integration-testsuite@2.0.5
 - apollo-server-koa@2.0.5
 - apollo-server-lambda@2.0.5
 - apollo-server-micro@2.0.5
 - apollo-server@2.0.6
 - apollo-tracing@0.2.3
 - graphql-extensions@0.1.3
2018-09-03 15:06:00 +02:00
Martijn Walraven
4bb6c74eea Remove stray devDependencies from packages 2018-09-01 14:48:30 +02:00
Evans Hauser
2657e9b25b
Publish
- apollo-server-cloud-functions@2.0.1
 - apollo-server-cloudflare@2.0.2
 - apollo-server-core@2.0.4
 - apollo-server-express@2.0.4
 - apollo-server-hapi@2.0.4
 - apollo-server-integration-testsuite@2.0.4
 - apollo-server-koa@2.0.4
 - apollo-server-lambda@2.0.4
 - apollo-server-micro@2.0.4
 - apollo-server@2.0.5
2018-08-20 14:17:37 -07:00
Evans Hauser
3e54e60ced
Publish
- apollo-server-cloudflare@2.0.1
 - apollo-server-core@2.0.3
 - apollo-server-express@2.0.3
 - apollo-server-hapi@2.0.3
 - apollo-server-integration-testsuite@2.0.3
 - apollo-server-koa@2.0.3
 - apollo-server-lambda@2.0.3
 - apollo-server-micro@2.0.3
 - apollo-server@2.0.3
2018-08-16 11:40:49 -07:00
Evans Hauser
efc5302930
Add option to mock the entire schema(i.e. set preserveResolvers) (#1546)
* add mockEntireSchema as configuration for preserveResolvers

* add mockEntireSchema to api reference

* add changelog
2018-08-16 11:21:13 -07:00
Evans Hauser
f7b5d63d03
Publish
- apollo-cache-control@0.2.2
 - apollo-datasource-rest@0.1.3
 - apollo-datasource@0.1.2
 - apollo-engine-reporting-protobuf@0.0.1
 - apollo-engine-reporting@0.0.2
 - apollo-server-cache-memcached@0.1.2
 - apollo-server-cache-redis@0.1.2
 - apollo-server-caching@0.1.2
 - apollo-server-cloudflare@2.0.0-rc.14
 - apollo-server-core@2.0.2
 - apollo-server-env@2.0.2
 - apollo-server-errors@2.0.2
 - apollo-server-express@2.0.2
 - apollo-server-hapi@2.0.2
 - apollo-server-integration-testsuite@2.0.2
 - apollo-server-koa@2.0.2
 - apollo-server-lambda@2.0.2
 - apollo-server-micro@2.0.2
 - apollo-server@2.0.2
 - apollo-tracing@0.2.2
 - graphql-extensions@0.1.2
2018-08-14 11:49:10 -07:00
Evans Hauser
ef82add05b
Publish
- apollo-cache-control@0.2.1
 - apollo-datasource-rest@0.1.2
 - apollo-datasource@0.1.1
 - apollo-engine-reporting-protobuf@0.0.0
 - apollo-engine-reporting@0.0.1
 - apollo-server-cache-memcached@0.1.1
 - apollo-server-cache-redis@0.1.1
 - apollo-server-caching@0.1.1
 - apollo-server-cloudflare@2.0.0-rc.13
 - apollo-server-core@2.0.1
 - apollo-server-env@2.0.1
 - apollo-server-errors@2.0.1
 - apollo-server-express@2.0.1
 - apollo-server-hapi@2.0.1
 - apollo-server-integration-testsuite@2.0.1
 - apollo-server-koa@2.0.1
 - apollo-server-lambda@2.0.1
 - apollo-server-micro@2.0.1
 - apollo-server@2.0.1
 - apollo-tracing@0.2.1
 - graphql-extensions@0.1.1
2018-08-14 11:05:31 -07:00
Martijn Walraven
2369b06be2 Use strict top-level tsconfig and fix type issues or override per-package 2018-08-11 16:45:03 +02:00
Martijn Walraven
0d89fa7cde Make sure package.json includes clean script 2018-08-11 16:45:03 +02:00
Martijn Walraven
ef4d5e4f95 Switch to using file specifiers and root level dev dependencies only 2018-08-11 16:45:03 +02:00
Martijn Walraven
ea6faf770a Replace prepublish scripts with prepare 2018-08-11 16:45:03 +02:00
Martijn Walraven
943b91a564 Don't ignore package-lock.json 2018-08-11 16:45:03 +02:00
Renovate Bot
1b7758532b chore(deps): update dependency yup to v0.26.2 2018-08-10 03:27:18 +00:00
Martijn Walraven
04cf5795d5 Standardize on "types" and move it after "main" in package.json 2018-08-01 10:13:16 +02:00
Martijn Walraven
9d053d6c93 Remove deprecated "typescript"/"definition" from package.json
This was only used by https://github.com/DefinitelyTyped/tsd, and hasn't been required since TypeScript 1.6.
2018-08-01 10:09:36 +02:00
Renovate Bot
fd43223ac7 chore(deps): update dependency subscriptions-transport-ws to v0.9.14 2018-08-01 00:50:38 +00:00
Evans Hauser
9dd1fec766
Mocha to Jest Test Conversion (#1453)
* 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
2018-07-31 15:40:03 -07:00
Renovate Bot
c53ee5bb60 chore(deps): update dependency yup to v0.26.0 2018-07-21 03:07:05 +00:00
Evans Hauser
04e0d5bce0
Publish
- apollo-cache-control@0.2.0
 - apollo-datasource-rest@0.1.0
 - apollo-datasource@0.1.0
 - apollo-engine-reporting@0.0.0
 - apollo-server-cache-memcached@0.1.0
 - apollo-server-cache-redis@0.1.0
 - apollo-server-caching@0.1.0
 - apollo-server-cloudflare@2.0.0-rc.12
 - apollo-server-core@2.0.0
 - apollo-server-env@2.0.0
 - apollo-server-errors@2.0.0
 - apollo-server-express@2.0.0
 - apollo-server-hapi@2.0.0
 - apollo-server-integration-testsuite@2.0.0
 - apollo-server-koa@2.0.0
 - apollo-server-lambda@2.0.0
 - apollo-server-micro@2.0.0
 - apollo-server@2.0.0
 - apollo-tracing@0.2.0
 - graphql-extensions@0.1.0
2018-07-19 12:49:55 -07:00
Martijn Walraven
eeeea09ce5 Publish
- apollo-cache-control@0.2.0-rc.4
 - apollo-datasource-rest@0.1.0-rc.11
 - apollo-datasource@0.1.0-rc.11
 - apollo-engine-reporting@0.0.0-rc.5
 - apollo-server-caching@0.1.0-rc.11
 - apollo-server-cloudflare@2.0.0-rc.11
 - apollo-server-core@2.0.0-rc.11
 - apollo-server-env@2.0.0-rc.11
 - apollo-server-errors@2.0.0-rc.11
 - apollo-server-express@2.0.0-rc.11
 - apollo-server-hapi@2.0.0-rc.11
 - apollo-server-integration-testsuite@2.0.0-rc.11
 - apollo-server-koa@2.0.0-rc.11
 - apollo-server-lambda@2.0.0-xrc.11
 - apollo-server-memcached@0.1.0-rc.11
 - apollo-server-micro@2.0.0-rc.11
 - apollo-server-redis@0.1.0-rc.11
 - apollo-server@2.0.0-rc.11
 - apollo-tracing@0.2.0-rc.4
 - graphql-extensions@0.1.0-rc.5
2018-07-17 16:11:33 -07:00
Evans Hauser
9518c0ff1a
Publish
- apollo-cache-control@0.2.0-rc.3
 - apollo-datasource-rest@0.1.0-rc.10
 - apollo-datasource@0.1.0-rc.10
 - apollo-engine-reporting@0.0.0-rc.4
 - apollo-server-caching@0.1.0-rc.10
 - apollo-server-cloudflare@2.0.0-rc.10
 - apollo-server-core@2.0.0-rc.10
 - apollo-server-env@2.0.0-rc.10
 - apollo-server-errors@2.0.0-rc.10
 - apollo-server-express@2.0.0-rc.10
 - apollo-server-hapi@2.0.0-rc.10
 - apollo-server-integration-testsuite@2.0.0-rc.10
 - apollo-server-koa@2.0.0-rc.10
 - apollo-server-lambda@2.0.0-xrc.10
 - apollo-server-memcached@0.1.0-rc.10
 - apollo-server-micro@2.0.0-rc.10
 - apollo-server-redis@0.1.0-rc.10
 - apollo-server@2.0.0-rc.10
 - apollo-tracing@0.2.0-rc.3
 - graphql-extensions@0.1.0-rc.4
2018-07-17 10:55:45 -07:00
Evans Hauser
0144d4b2db
Publish
- apollo-cache-control@0.2.0-rc.2
 - apollo-datasource-rest@0.1.0-rc.9
 - apollo-datasource@0.1.0-rc.9
 - apollo-engine-reporting@0.0.0-rc.3
 - apollo-server-caching@0.1.0-rc.9
 - apollo-server-cloudflare@2.0.0-rc.9
 - apollo-server-core@2.0.0-rc.9
 - apollo-server-env@2.0.0-rc.9
 - apollo-server-errors@2.0.0-rc.9
 - apollo-server-express@2.0.0-rc.9
 - apollo-server-hapi@2.0.0-rc.9
 - apollo-server-integration-testsuite@2.0.0-rc.9
 - apollo-server-koa@2.0.0-rc.9
 - apollo-server-lambda@2.0.0-xrc.9
 - apollo-server-memcached@0.1.0-rc.9
 - apollo-server-micro@2.0.0-rc.9
 - apollo-server-redis@0.1.0-rc.9
 - apollo-server@2.0.0-rc.9
 - apollo-tracing@0.2.0-rc.2
 - graphql-extensions@0.1.0-rc.3
2018-07-17 10:44:15 -07:00
Evans Hauser
e04a570f7e
pin internal dependencies (#1361) 2018-07-16 16:15:10 -07:00