diff --git a/azure-pipelines.yml b/azure-pipelines.yml index efeaf4b4ed..ff91ecd72e 100644 --- a/azure-pipelines.yml +++ b/azure-pipelines.yml @@ -4,45 +4,60 @@ # https://docs.microsoft.com/azure/devops/pipelines/languages/javascript jobs: - - job: Linux_Node8 + # - job: Linux_Node8 - pool: - vmImage: "ubuntu 16.04" + # pool: + # vmImage: "ubuntu 16.04" - steps: - - task: NodeTool@0 - inputs: - versionSpec: "8.x" - displayName: "Install Node.js" + # steps: + # - task: NodeTool@0 + # inputs: + # versionSpec: "8.x" + # displayName: "Install Node.js" - - script: | - npm run azure - displayName: "npm ci && build && test" + # - script: | + # npm run azure + # displayName: "npm ci && test" - - script: | - npm run lint - displayName: "npm run lint" + # - script: | + # npm run lint + # displayName: "npm run lint" - - script: | - ENGINE_API_KEY=$(CHECKS_API_KEY) ./packages/apollo/bin/run client:check - displayName: "Query Check" + # - script: | + # ENGINE_API_KEY=$(CHECKS_API_KEY) ./packages/apollo/bin/run client:check + # displayName: "Query Check" + + # - job: Linux_Node10 - - job: Linux_Node10 + # pool: + # vmImage: "ubuntu 16.04" + + # steps: + # - task: NodeTool@0 + # inputs: + # versionSpec: "10.x" + # displayName: "Install Node.js" + + # - script: | + # npm run azure + # displayName: "npm ci && test" + + - job: Windows_Node8 pool: - vmImage: "ubuntu 16.04" + vmImage: "vs2017-win2016" steps: - task: NodeTool@0 inputs: - versionSpec: "10.x" + versionSpec: "8.14" displayName: "Install Node.js" - script: | npm run azure - displayName: "npm ci && build && test" + displayName: "npm ci && test" - - job: Windows_Node8 + - job: Windows_Node10 pool: vmImage: "vs2017-win2016" @@ -50,9 +65,9 @@ jobs: steps: - task: NodeTool@0 inputs: - versionSpec: "8.14" + versionSpec: "10.x" displayName: "Install Node.js" - script: | npm run azure - displayName: "npm ci && build && test" + displayName: "npm ci && test" diff --git a/package.json b/package.json index e312231ca7..f02825ec2f 100644 --- a/package.json +++ b/package.json @@ -13,7 +13,7 @@ "apollo": "./packages/apollo/bin/run" }, "scripts": { - "azure": "npm ci && npm run build && npm test", + "azure": "npm ci && npm run test:ci", "clean": "git clean -dfqX -- ./node_modules **/{lib,node_modules}/", "postinstall": "npm run build", "build": "lerna run build --stream --scope apollo-env && npm run compile && lerna run build --stream --ignore apollo-env", @@ -28,6 +28,7 @@ "postcircle": "npm run lint", "lint": "prettier --list-different \"packages/*/src/**/*.{js,jsx,ts,tsx}\"", "lint-fix": "prettier --write \"packages/*/src/**/*.{js,jsx,ts,tsx}\"", + "posttest": "npm run lint", "release": "npm run clean && npm ci && lerna publish --exact", "package-extension": "npm run clean && npm ci && lerna run package-extension --stream --scope=vscode-apollo" }, diff --git a/packages/apollo/src/commands/client/__tests__/__snapshots__/generate.test.ts.snap b/packages/apollo/src/commands/client/__tests__/__snapshots__/generate.test.ts.snap index 97d720d929..35cbad084e 100644 --- a/packages/apollo/src/commands/client/__tests__/__snapshots__/generate.test.ts.snap +++ b/packages/apollo/src/commands/client/__tests__/__snapshots__/generate.test.ts.snap @@ -37,69 +37,6 @@ exports[`client:codegen generates operation IDs for swift files when flag is set }" `; -exports[`client:codegen writes TypeScript global types to a custom path when globalTypesFile is set 1`] = ` -"/* tslint:disable */ -// This file was automatically generated and should not be edited. - -import { SomeEnum } from \\"./../../__foo__/bar\\"; - -// ==================================================== -// GraphQL query operation: SimpleQuery -// ==================================================== - -export interface SimpleQuery { - someEnum: SomeEnum; -} -" -`; - -exports[`client:codegen writes TypeScript global types to a custom path when globalTypesFile is set 2`] = ` -"/* tslint:disable */ -// This file was automatically generated and should not be edited. - -//============================================================== -// START Enums and Input Objects -//============================================================== - -export enum SomeEnum { - bar = \\"bar\\", - foo = \\"foo\\", -} - -//============================================================== -// END Enums and Input Objects -//============================================================== -" -`; - -exports[`client:codegen writes TypeScript types into a __generated__ directory next to sources when no output is set 1`] = ` -"/* tslint:disable */ -// This file was automatically generated and should not be edited. - -// ==================================================== -// GraphQL query operation: SimpleQuery -// ==================================================== - -export interface SimpleQuery { - hello: string; -} -" -`; - -exports[`client:codegen writes TypeScript types into a __generated__ directory next to sources when no output is set 2`] = ` -"/* tslint:disable */ -// This file was automatically generated and should not be edited. - -//============================================================== -// START Enums and Input Objects -//============================================================== - -//============================================================== -// END Enums and Input Objects -//============================================================== -" -`; - exports[`client:codegen writes exact Flow types when the useFlowExactObjects flag is set 1`] = ` " diff --git a/packages/apollo/src/diff/__tests__/__snapshots__/print.ts.snap b/packages/apollo/src/diff/__tests__/__snapshots__/print.ts.snap index 41f1a378db..18af722298 100644 --- a/packages/apollo/src/diff/__tests__/__snapshots__/print.ts.snap +++ b/packages/apollo/src/diff/__tests__/__snapshots__/print.ts.snap @@ -3245,1717 +3245,97 @@ Array [ "change": "WARNING", "code": "FIELD_REMOVED", "description": "\`Query.hello\` was removed", - "field": Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 29, - "start": 15, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 20, - "start": 15, - }, - "value": "hello", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 29, - "start": 22, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 28, - "start": 22, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 28, - "start": 22, - }, - "value": "String", - }, - }, - }, - }, - "type": Object { - "description": undefined, - "directives": Array [], - "fields": Array [ - Object { - "arguments": Array [], - "change": Object { - "change": "NOTICE", - "code": "FIELD_ADDED", - "description": "\`Query.me\` was added", - "field": [Circular], - "type": [Circular], - }, - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 23, - "start": 15, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 17, - "start": 15, - }, - "value": "me", - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 23, - "start": 19, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 23, - "start": 19, - }, - "value": "User", - }, - }, - }, - Object { - "arguments": Array [], - "change": [Circular], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 29, - "start": 15, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 20, - "start": 15, - }, - "value": "hello", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 29, - "start": 22, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 28, - "start": 22, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 28, - "start": 22, - }, - "value": "String", - }, - }, - }, - }, - Object { - "arguments": Array [], - "change": Object { - "change": "WARNING", - "code": "FIELD_REMOVED", - "description": "\`Query.serverSideField\` was removed", - "field": Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 61, - "start": 32, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 47, - "start": 32, - }, - "value": "serverSideField", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 61, - "start": 49, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 60, - "start": 49, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 60, - "start": 49, - }, - "value": "ServerField", - }, - }, - }, - }, - "type": [Circular], - }, - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 61, - "start": 32, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 47, - "start": 32, - }, - "value": "serverSideField", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 61, - "start": 49, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 60, - "start": 49, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 60, - "start": 49, - }, - "value": "ServerField", - }, - }, - }, - }, - Object { - "arguments": Array [], - "change": Object { - "change": "WARNING", - "code": "FIELD_REMOVED", - "description": "\`Query.someEnum\` was removed", - "field": Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 83, - "start": 64, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 72, - "start": 64, - }, - "value": "someEnum", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 83, - "start": 74, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 82, - "start": 74, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 82, - "start": 74, - }, - "value": "SomeEnum", - }, - }, - }, - }, - "type": [Circular], - }, - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 83, - "start": 64, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 72, - "start": 64, - }, - "value": "someEnum", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 83, - "start": 74, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 82, - "start": 74, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 82, - "start": 74, - }, - "value": "SomeEnum", - }, - }, - }, - }, - ], - "interfaces": Array [], - "kind": "ObjectTypeDefinition", - "loc": Object { - "end": 25, - "start": 0, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 10, - "start": 5, - }, - "value": "Query", - }, - }, - }, - Object { - "change": "WARNING", - "code": "FIELD_REMOVED", - "description": "\`Query.serverSideField\` was removed", - "field": Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 61, - "start": 32, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 47, - "start": 32, - }, - "value": "serverSideField", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 61, - "start": 49, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 60, - "start": 49, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 60, - "start": 49, - }, - "value": "ServerField", - }, - }, - }, - }, - "type": Object { - "description": undefined, - "directives": Array [], - "fields": Array [ - Object { - "arguments": Array [], - "change": Object { - "change": "NOTICE", - "code": "FIELD_ADDED", - "description": "\`Query.me\` was added", - "field": [Circular], - "type": [Circular], - }, - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 23, - "start": 15, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 17, - "start": 15, - }, - "value": "me", - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 23, - "start": 19, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 23, - "start": 19, - }, - "value": "User", - }, - }, - }, - Object { - "arguments": Array [], - "change": Object { - "change": "WARNING", - "code": "FIELD_REMOVED", - "description": "\`Query.hello\` was removed", - "field": Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 29, - "start": 15, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 20, - "start": 15, - }, - "value": "hello", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 29, - "start": 22, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 28, - "start": 22, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 28, - "start": 22, - }, - "value": "String", - }, - }, - }, - }, - "type": [Circular], - }, - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 29, - "start": 15, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 20, - "start": 15, - }, - "value": "hello", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 29, - "start": 22, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 28, - "start": 22, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 28, - "start": 22, - }, - "value": "String", - }, - }, - }, - }, - Object { - "arguments": Array [], - "change": [Circular], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 61, - "start": 32, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 47, - "start": 32, - }, - "value": "serverSideField", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 61, - "start": 49, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 60, - "start": 49, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 60, - "start": 49, - }, - "value": "ServerField", - }, - }, - }, - }, - Object { - "arguments": Array [], - "change": Object { - "change": "WARNING", - "code": "FIELD_REMOVED", - "description": "\`Query.someEnum\` was removed", - "field": Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 83, - "start": 64, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 72, - "start": 64, - }, - "value": "someEnum", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 83, - "start": 74, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 82, - "start": 74, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 82, - "start": 74, - }, - "value": "SomeEnum", - }, - }, - }, - }, - "type": [Circular], - }, - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 83, - "start": 64, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 72, - "start": 64, - }, - "value": "someEnum", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 83, - "start": 74, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 82, - "start": 74, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 82, - "start": 74, - }, - "value": "SomeEnum", - }, - }, - }, - }, - ], - "interfaces": Array [], - "kind": "ObjectTypeDefinition", - "loc": Object { - "end": 25, - "start": 0, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 10, - "start": 5, - }, - "value": "Query", - }, - }, - }, - Object { - "change": "WARNING", - "code": "FIELD_REMOVED", - "description": "\`Query.someEnum\` was removed", - "field": Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 83, - "start": 64, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 72, - "start": 64, - }, - "value": "someEnum", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 83, - "start": 74, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 82, - "start": 74, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 82, - "start": 74, - }, - "value": "SomeEnum", - }, - }, - }, - }, - "type": Object { - "description": undefined, - "directives": Array [], - "fields": Array [ - Object { - "arguments": Array [], - "change": Object { - "change": "NOTICE", - "code": "FIELD_ADDED", - "description": "\`Query.me\` was added", - "field": [Circular], - "type": [Circular], - }, - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 23, - "start": 15, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 17, - "start": 15, - }, - "value": "me", - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 23, - "start": 19, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 23, - "start": 19, - }, - "value": "User", - }, - }, - }, - Object { - "arguments": Array [], - "change": Object { - "change": "WARNING", - "code": "FIELD_REMOVED", - "description": "\`Query.hello\` was removed", - "field": Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 29, - "start": 15, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 20, - "start": 15, - }, - "value": "hello", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 29, - "start": 22, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 28, - "start": 22, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 28, - "start": 22, - }, - "value": "String", - }, - }, - }, - }, - "type": [Circular], - }, - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 29, - "start": 15, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 20, - "start": 15, - }, - "value": "hello", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 29, - "start": 22, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 28, - "start": 22, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 28, - "start": 22, - }, - "value": "String", - }, - }, - }, - }, - Object { - "arguments": Array [], - "change": Object { - "change": "WARNING", - "code": "FIELD_REMOVED", - "description": "\`Query.serverSideField\` was removed", - "field": Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 61, - "start": 32, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 47, - "start": 32, - }, - "value": "serverSideField", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 61, - "start": 49, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 60, - "start": 49, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 60, - "start": 49, - }, - "value": "ServerField", - }, - }, - }, - }, - "type": [Circular], - }, - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 61, - "start": 32, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 47, - "start": 32, - }, - "value": "serverSideField", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 61, - "start": 49, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 60, - "start": 49, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 60, - "start": 49, - }, - "value": "ServerField", - }, - }, - }, - }, - Object { - "arguments": Array [], - "change": [Circular], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 83, - "start": 64, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 72, - "start": 64, - }, - "value": "someEnum", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 83, - "start": 74, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 82, - "start": 74, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 82, - "start": 74, - }, - "value": "SomeEnum", - }, - }, - }, - }, - ], - "interfaces": Array [], - "kind": "ObjectTypeDefinition", - "loc": Object { - "end": 25, - "start": 0, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 10, - "start": 5, - }, - "value": "Query", - }, - }, - }, - Object { - "change": "WARNING", - "code": "TYPE_REMOVED", - "description": "\`ServerField\` removed", - "type": Object { - "description": undefined, - "directives": Array [], - "fields": Array [ - Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 127, - "start": 108, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 118, - "start": 108, - }, - "value": "serverData", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 127, - "start": 120, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 126, - "start": 120, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 126, - "start": 120, - }, - "value": "String", - }, - }, - }, - }, - ], - "interfaces": Array [], - "kind": "ObjectTypeDefinition", - "loc": Object { - "end": 129, - "start": 87, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 103, - "start": 92, - }, - "value": "ServerField", - }, - }, - }, - Object { - "change": "WARNING", - "code": "TYPE_REMOVED", - "description": "\`SomeEnum\` removed", - "type": Object { - "description": undefined, - "directives": Array [], - "kind": "EnumTypeDefinition", - "loc": Object { - "end": 255, - "start": 226, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 239, - "start": 231, - }, - "value": "SomeEnum", - }, - "values": Array [ - Object { - "description": undefined, - "directives": Array [], - "kind": "EnumValueDefinition", - "loc": Object { - "end": 247, - "start": 244, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 247, - "start": 244, - }, - "value": "foo", - }, - }, - Object { - "description": undefined, - "directives": Array [], - "kind": "EnumValueDefinition", - "loc": Object { - "end": 253, - "start": 250, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 253, - "start": 250, - }, - "value": "bar", - }, - }, - ], - }, - }, - Object { - "change": "WARNING", - "code": "FIELD_REMOVED", - "description": "\`RemovedField.name\` was removed", - "field": Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 180, - "start": 163, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 167, - "start": 163, - }, - "value": "name", - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 180, - "start": 169, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 180, - "start": 169, - }, - "value": "RemovedType", - }, - }, - }, - "type": Object { - "description": undefined, - "directives": Array [], - "fields": Array [ - Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 101, - "start": 94, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 96, - "start": 94, - }, - "value": "id", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 101, - "start": 98, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 100, - "start": 98, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 100, - "start": 98, - }, - "value": "ID", - }, - }, - }, - }, - Object { - "arguments": Array [], - "change": [Circular], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 180, - "start": 163, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 167, - "start": 163, - }, - "value": "name", - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 180, - "start": 169, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 180, - "start": 169, - }, - "value": "RemovedType", - }, - }, - }, - ], - "interfaces": Array [], - "kind": "ObjectTypeDefinition", - "loc": Object { - "end": 103, - "start": 72, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 89, - "start": 77, - }, - "value": "RemovedField", - }, - }, - }, - Object { - "change": "WARNING", - "code": "TYPE_REMOVED", - "description": "\`RemovedType\` removed", - "type": Object { - "description": undefined, - "directives": Array [], - "fields": Array [ - Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 222, - "start": 205, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 214, - "start": 205, - }, - "value": "fieldName", - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 222, - "start": 216, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 222, - "start": 216, - }, - "value": "String", - }, - }, - }, - ], - "interfaces": Array [], - "kind": "ObjectTypeDefinition", - "loc": Object { - "end": 224, - "start": 184, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 200, - "start": 189, - }, - "value": "RemovedType", - }, - }, - }, - Object { - "change": "NOTICE", - "code": "FIELD_ADDED", - "description": "\`Query.me\` was added", - "field": Object { - "arguments": Array [], - "change": [Circular], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 23, - "start": 15, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 17, - "start": 15, - }, - "value": "me", - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 23, - "start": 19, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 23, - "start": 19, - }, - "value": "User", - }, - }, - }, - "type": Object { - "description": undefined, - "directives": Array [], - "fields": Array [ - Object { - "arguments": Array [], - "change": [Circular], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 23, - "start": 15, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 17, - "start": 15, - }, - "value": "me", - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 23, - "start": 19, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 23, - "start": 19, - }, - "value": "User", - }, - }, - }, - Object { - "arguments": Array [], - "change": Object { - "change": "WARNING", - "code": "FIELD_REMOVED", - "description": "\`Query.hello\` was removed", - "field": Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 29, - "start": 15, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 20, - "start": 15, - }, - "value": "hello", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 29, - "start": 22, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 28, - "start": 22, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 28, - "start": 22, - }, - "value": "String", - }, - }, - }, - }, - "type": [Circular], - }, - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 29, - "start": 15, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 20, - "start": 15, - }, - "value": "hello", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 29, - "start": 22, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 28, - "start": 22, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 28, - "start": 22, - }, - "value": "String", - }, - }, - }, - }, - Object { - "arguments": Array [], - "change": Object { - "change": "WARNING", - "code": "FIELD_REMOVED", - "description": "\`Query.serverSideField\` was removed", - "field": Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 61, - "start": 32, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 47, - "start": 32, - }, - "value": "serverSideField", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 61, - "start": 49, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 60, - "start": 49, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 60, - "start": 49, - }, - "value": "ServerField", - }, - }, - }, - }, - "type": [Circular], - }, - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 61, - "start": 32, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 47, - "start": 32, - }, - "value": "serverSideField", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 61, - "start": 49, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 60, - "start": 49, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 60, - "start": 49, - }, - "value": "ServerField", - }, - }, - }, - }, - Object { - "arguments": Array [], - "change": Object { - "change": "WARNING", - "code": "FIELD_REMOVED", - "description": "\`Query.someEnum\` was removed", - "field": Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 83, - "start": 64, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 72, - "start": 64, - }, - "value": "someEnum", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 83, - "start": 74, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 82, - "start": 74, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 82, - "start": 74, - }, - "value": "SomeEnum", - }, - }, - }, - }, - "type": [Circular], - }, - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 83, - "start": 64, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 72, - "start": 64, - }, - "value": "someEnum", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 83, - "start": 74, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 82, - "start": 74, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 82, - "start": 74, - }, - "value": "SomeEnum", - }, - }, - }, - }, - ], - "interfaces": Array [], - "kind": "ObjectTypeDefinition", - "loc": Object { - "end": 25, - "start": 0, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 10, - "start": 5, - }, - "value": "Query", - }, - }, + "field": "hello: String!", + "type": "type Query { + me: User + hello: String! + serverSideField: ServerField! + someEnum: SomeEnum! +}", + }, + Object { + "change": "WARNING", + "code": "FIELD_REMOVED", + "description": "\`Query.serverSideField\` was removed", + "field": "serverSideField: ServerField!", + "type": "type Query { + me: User + hello: String! + serverSideField: ServerField! + someEnum: SomeEnum! +}", + }, + Object { + "change": "WARNING", + "code": "FIELD_REMOVED", + "description": "\`Query.someEnum\` was removed", + "field": "someEnum: SomeEnum!", + "type": "type Query { + me: User + hello: String! + serverSideField: ServerField! + someEnum: SomeEnum! +}", + }, + Object { + "change": "WARNING", + "code": "TYPE_REMOVED", + "description": "\`ServerField\` removed", + "field": undefined, + "type": "type ServerField { + serverData: String! +}", + }, + Object { + "change": "WARNING", + "code": "TYPE_REMOVED", + "description": "\`SomeEnum\` removed", + "field": undefined, + "type": "enum SomeEnum { + foo + bar +}", + }, + Object { + "change": "WARNING", + "code": "FIELD_REMOVED", + "description": "\`RemovedField.name\` was removed", + "field": "name: RemovedType", + "type": "type RemovedField { + id: ID! + name: RemovedType +}", + }, + Object { + "change": "WARNING", + "code": "TYPE_REMOVED", + "description": "\`RemovedType\` removed", + "field": undefined, + "type": "type RemovedType { + fieldName: String +}", + }, + Object { + "change": "NOTICE", + "code": "FIELD_ADDED", + "description": "\`Query.me\` was added", + "field": "me: User", + "type": "type Query { + me: User + hello: String! + serverSideField: ServerField! + someEnum: SomeEnum! +}", }, Object { "change": "NOTICE", "code": "TYPE_ADDED", "description": "\`User\` added", - "type": Object { - "description": undefined, - "directives": Array [], - "fields": Array [ - Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 48, - "start": 41, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 43, - "start": 41, - }, - "value": "id", - }, - "type": Object { - "kind": "NonNullType", - "loc": Object { - "end": 48, - "start": 45, - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 47, - "start": 45, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 47, - "start": 45, - }, - "value": "ID", - }, - }, - }, - }, - Object { - "arguments": Array [], - "description": undefined, - "directives": Array [], - "kind": "FieldDefinition", - "loc": Object { - "end": 68, - "start": 51, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 60, - "start": 51, - }, - "value": "firstName", - }, - "type": Object { - "kind": "NamedType", - "loc": Object { - "end": 68, - "start": 62, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 68, - "start": 62, - }, - "value": "String", - }, - }, - }, - ], - "interfaces": Array [], - "kind": "ObjectTypeDefinition", - "loc": Object { - "end": 70, - "start": 27, - }, - "name": Object { - "kind": "Name", - "loc": Object { - "end": 36, - "start": 32, - }, - "value": "User", - }, - }, + "field": undefined, + "type": "type User { + id: ID! + firstName: String +}", }, ] `; diff --git a/packages/apollo/src/diff/__tests__/print.ts b/packages/apollo/src/diff/__tests__/print.ts index aac22bde24..c51bd822ca 100644 --- a/packages/apollo/src/diff/__tests__/print.ts +++ b/packages/apollo/src/diff/__tests__/print.ts @@ -43,7 +43,7 @@ const fcompare = (name, sd1, sd2, debug = true) => { }); }; -xdescribe("types", () => { +describe("types", () => { it("renders nothing for no changes", () => { const { current, next } = schemas( gql` @@ -129,7 +129,7 @@ xdescribe("types", () => { ` ); }); -xdescribe("fields", () => { +describe("fields", () => { compare( "shows warning for removals", gql` @@ -216,7 +216,7 @@ xdescribe("fields", () => { ); }); -xdescribe("arguments", () => { +describe("arguments", () => { compare( "shows removed arguments", gql` @@ -261,7 +261,7 @@ xdescribe("arguments", () => { ); }); -xdescribe("interfaces", () => { +describe("interfaces", () => { compare( "reports removal of interface implementations", gql` @@ -397,7 +397,7 @@ xdescribe("interfaces", () => { ); }); -xdescribe("unions", () => { +describe("unions", () => { compare( "type removed from union", gql` @@ -450,7 +450,7 @@ xdescribe("unions", () => { ); }); -xdescribe("kind changes", () => { +describe("kind changes", () => { compare( "type changed kind", gql` @@ -510,7 +510,7 @@ xdescribe("kind changes", () => { ); }); -xdescribe("deprecation changes", () => { +describe("deprecation changes", () => { compare( "deprecation additions", gql` @@ -566,11 +566,14 @@ xdescribe("deprecation changes", () => { // DIRECTIVE_ARG_REMOVED, // NON_NULL_DIRECTIVE_ARG_ADDED, -xdescribe("integration", () => { +describe("integration", () => { // XXX make this change complex it("reports changes for a complex scenario", () => { const { current, next } = schemas(initial, change); - const changes = diffSchemas(current.getTypeMap(), next.getTypeMap()); + let changes = diffSchemas(current.getTypeMap(), next.getTypeMap()); + changes = changes.map(c => { + return { ...c, type: print(c.type), field: print(c.field) }; + }); expect(changes).toMatchSnapshot(); }); }); diff --git a/packages/apollo/src/generate.ts b/packages/apollo/src/generate.ts index a574a7139c..a3efdfa3e9 100644 --- a/packages/apollo/src/generate.ts +++ b/packages/apollo/src/generate.ts @@ -95,7 +95,7 @@ export default function generate( if (nextToSources) { generatedFiles.forEach(({ sourcePath, fileName, content }) => { const dir = path.join( - path.dirname(path.relative(rootPath, toPath(sourcePath))), + path.dirname(path.posix.relative(rootPath, toPath(sourcePath))), outputPath ); if (!fs.existsSync(dir)) { @@ -163,7 +163,7 @@ export default function generate( let dir = outputPath; if (nextToSources) { dir = path.join( - path.dirname(path.relative(rootPath, toPath(sourcePath))), + path.dirname(path.posix.relative(rootPath, toPath(sourcePath))), dir ); if (!fs.existsSync(dir)) {