Execution test cleanup#146
Merged
Merged
Conversation
Contributor
Author
|
This puts the failed test count at 2 (!) (ignoring the ~40 relating to the old error formatting). The last 2 relate to inline fragments without type conditions, which will be handled in a separate PR. |
bruce
added a commit
that referenced
this pull request
Sep 16, 2016
* Build toplevel IR structs Restarted this branch. * Add Union, Enum to IR * Fix Directive IDL generation * Stub for IR directive * IR IDL Object, minus fields * basic input * IR directive * error t * Add (Type)Definition to IR IDL nodes * Fix reporting of syntax errors * Support for directives on interfaces * IR IDL UnionTypeDefinition, with directives * Test for IDL Interfaces, normalize Language & IR refs to "InterfaceTypeDefinition" * pass doc through * merge fix * [Input]ObjectDefinition -> [Input]ObjectTypeDefinition * Fix some missed file moves for naming changes * non null and friend * list type vs list * IR IDL FieldDefinitions, w/ types & directives * Cleanup some AST struct type defs, style * Cleanup AST struct defstructs, types * IR IDL ScalarTypeDefinition w/ directive support * IR IDL Directive definitions * IR IDL FieldDefinition w/ ArgumentDefinitions * IR IDL InputObjectTypeDefinition w/ fields & directives * IR -> Blueprint * Typespec fixes, start getting strict about keys * Get serious about @SPEC and @enforce_keys * Build Blueprint Field.t w/ Input.Argument.t * Blueprint Object, Field, Directive args * EnumTypeDefinition & Perf: `Enum.map` vs. `for` * Fix typespec typo * Add scalar definitions to blueprint types * Blueprint variable definitions * Naive pipelining of Parse -> Blueprint * Simplify pipeline flow * Add stub for variables phase * AST responsible for Blueprint conversion * initial mapping code * might help if I included the file * mapping for IDL types * Pipeline configuration * Basic Phase.Operation.Variables using Mapper * Phase Variables -> Input, as it handles literals * Split Phase Input -> [Variables, Arguments] * Blueprint.IDL -> Blueprint.Schema * Blueprint.{List,Named,NonNull}Type -> Blueprint.TypeReference.{List,Name,NonNull} * Add Blueprint.Document namespacing * Since it's not "mapping," call it Transform for now * Add Deprecation and EnumValueDefinition * Move Directive back; it's in schema and documents * Blueprint.TypeReference.unwrap/1 * SourceLocation supported by major document nodes * Phase behaviour check_input/1 for input prereqs * Fix Phase.Document.Variables @moduledoc * Support fragment types * Fix selection types * Beginning of work on flattening * Flatten fragments from `selections` into `fields` * Start document validation with NoFragmentCycles * Add cycle test for validation (currently failing) * Cleanup fragment tests, handle pipeline halting * Foundation for directive expansion phase (#126) * Basic Document.Schema phase to support directive expansion * Core expansion logic * Bump travis settings * Set schema_node for operations and fragments * Schema nodes for inline fragments * Schema nodes for root fields of operations, fragments * Fill in schema nodes for simple arguments * Deeply nested input value schema-tagging, ignoring list/non-null * Simple cases for directive expansion * Generate data structure from Blueprint argument values (#128) * Blueprint.Input.Argument.t: provided_value -> normalized_value * Argument: value -> literal_value * Argument: Add `data_value` * Clean up some debugging * Phase.Document.Arguments -> Phase.Document.Arguments.Normalize * Object and scalar argument values * Aruguments.Data phase: Support for lists of scalars - Still have some regressions to fix * Build argument data ignoring non-null/list as needed * Start building test harness for validation tests * Foundation of validation test harness * Build out assertions for validation test harness * Initial pass/fail tests for ArgumentsOfCorrectType validation * ArgumentsOfCorrectType "happy path" tests * initial {version} test passed (#129) * initial {version} test passed * basic tests with arguments work * handle list return values * more resolution work * FSE test passing * collect errors into result * more execution * Made Scalars parse Blueprint nodes vs AST * Passing: All non-collection ArgumentsOfCorrectType * List input coercion * Support deep-flagging of problems in data phase * More source locations, break out list validation * Merge list item type validation w/ arg. Passing. * Support for reporting unknown fields * Simplify error checking, application * ArgumentsOfCorrectType ALL PASSING * KnownArgumentNames validation * ProvidedNonNullArguments validation * Actually add files. update data phase moduledoc. * UniqueArgumentNames - Add validation module - Add validation helper module - Allow @directive directive * UniqueInputFieldNames validation * Cleanup prewalks * Wire validations into pipeline * Add docs, specs, and comments. * Work on test failures * Phase tests passing * Skip @tag :old_errors for now, fix pipeline test * Pass variables as only part of provided_values * Add 'directive' to parser rule * Support for 'on' in certain contexts * Directive expansion (#136) * Basics for Doc/Schema KnownDirectives validation * Cleanup some old validations, protocol * Start to deal with validation of IDL documents * Work on directives validation * KnownDirectives validation, cleanup * Update flatten to pay attention to directive flags * Ensure KnownDirectives validation runs for schemas * coerce variables given as strings for enums (#139) * coerce variables given as strings for enums * fixes * Structural / Schema-related Validations (#138) * LoneAnonymousOperation * KnownFragmentNames, inline fragment parser tweak * Phase.Validation.KnownTypeNames * Core utilities for NoUndefinedVariables validation * NoUndefinedVariables * Missing files * NoUnusedVariables * NoUnusedFragments * UniqueFragmentNames * UniqueOperationNames * UniqueVariableNames * Extract error message to function * Fix parser warning * Restructure flags as a map for matching (#144) * Clear out old parser code (#145) * clean up warnings * use current operation when resolving * use custom default resolvers * non null fields are only invalid if they are also not deprecated * don't try to expand type if the parent schema node already is the type we want (#148) * Execution test cleanup (#146) * Use current operation in execution * No missing input stubs for deprecated fields * Restructure result tree, attach to operation * Clean out old execution, more type massaging * fix warnings * Fix introspection tests, add debug phase * Fix non-typeless inline fragment tests * v1.2: Wrap up all non-error related test failures (#152) * Fix flattening * All happy path tests green! * Fix compilation warnings * v1.2: Build errors from Blueprint tree (#153) * Towards resolution building Phase.Error structs * 484 tests, 22 failures & field suggestions * Validation: VariablesAreInputTypes, tests * GREEN * ScalarLeafs validation * Basic pipeline tests, hook in ScalarLeafs * Update introspection test
bruce
added a commit
that referenced
this pull request
Nov 2, 2016
* Foundation for initial v1.2 release (#157) * Build toplevel IR structs Restarted this branch. * Add Union, Enum to IR * Fix Directive IDL generation * Stub for IR directive * IR IDL Object, minus fields * basic input * IR directive * error t * Add (Type)Definition to IR IDL nodes * Fix reporting of syntax errors * Support for directives on interfaces * IR IDL UnionTypeDefinition, with directives * Test for IDL Interfaces, normalize Language & IR refs to "InterfaceTypeDefinition" * pass doc through * merge fix * [Input]ObjectDefinition -> [Input]ObjectTypeDefinition * Fix some missed file moves for naming changes * non null and friend * list type vs list * IR IDL FieldDefinitions, w/ types & directives * Cleanup some AST struct type defs, style * Cleanup AST struct defstructs, types * IR IDL ScalarTypeDefinition w/ directive support * IR IDL Directive definitions * IR IDL FieldDefinition w/ ArgumentDefinitions * IR IDL InputObjectTypeDefinition w/ fields & directives * IR -> Blueprint * Typespec fixes, start getting strict about keys * Get serious about @SPEC and @enforce_keys * Build Blueprint Field.t w/ Input.Argument.t * Blueprint Object, Field, Directive args * EnumTypeDefinition & Perf: `Enum.map` vs. `for` * Fix typespec typo * Add scalar definitions to blueprint types * Blueprint variable definitions * Naive pipelining of Parse -> Blueprint * Simplify pipeline flow * Add stub for variables phase * AST responsible for Blueprint conversion * initial mapping code * might help if I included the file * mapping for IDL types * Pipeline configuration * Basic Phase.Operation.Variables using Mapper * Phase Variables -> Input, as it handles literals * Split Phase Input -> [Variables, Arguments] * Blueprint.IDL -> Blueprint.Schema * Blueprint.{List,Named,NonNull}Type -> Blueprint.TypeReference.{List,Name,NonNull} * Add Blueprint.Document namespacing * Since it's not "mapping," call it Transform for now * Add Deprecation and EnumValueDefinition * Move Directive back; it's in schema and documents * Blueprint.TypeReference.unwrap/1 * SourceLocation supported by major document nodes * Phase behaviour check_input/1 for input prereqs * Fix Phase.Document.Variables @moduledoc * Support fragment types * Fix selection types * Beginning of work on flattening * Flatten fragments from `selections` into `fields` * Start document validation with NoFragmentCycles * Add cycle test for validation (currently failing) * Cleanup fragment tests, handle pipeline halting * Foundation for directive expansion phase (#126) * Basic Document.Schema phase to support directive expansion * Core expansion logic * Bump travis settings * Set schema_node for operations and fragments * Schema nodes for inline fragments * Schema nodes for root fields of operations, fragments * Fill in schema nodes for simple arguments * Deeply nested input value schema-tagging, ignoring list/non-null * Simple cases for directive expansion * Generate data structure from Blueprint argument values (#128) * Blueprint.Input.Argument.t: provided_value -> normalized_value * Argument: value -> literal_value * Argument: Add `data_value` * Clean up some debugging * Phase.Document.Arguments -> Phase.Document.Arguments.Normalize * Object and scalar argument values * Aruguments.Data phase: Support for lists of scalars - Still have some regressions to fix * Build argument data ignoring non-null/list as needed * Start building test harness for validation tests * Foundation of validation test harness * Build out assertions for validation test harness * Initial pass/fail tests for ArgumentsOfCorrectType validation * ArgumentsOfCorrectType "happy path" tests * initial {version} test passed (#129) * initial {version} test passed * basic tests with arguments work * handle list return values * more resolution work * FSE test passing * collect errors into result * more execution * Made Scalars parse Blueprint nodes vs AST * Passing: All non-collection ArgumentsOfCorrectType * List input coercion * Support deep-flagging of problems in data phase * More source locations, break out list validation * Merge list item type validation w/ arg. Passing. * Support for reporting unknown fields * Simplify error checking, application * ArgumentsOfCorrectType ALL PASSING * KnownArgumentNames validation * ProvidedNonNullArguments validation * Actually add files. update data phase moduledoc. * UniqueArgumentNames - Add validation module - Add validation helper module - Allow @directive directive * UniqueInputFieldNames validation * Cleanup prewalks * Wire validations into pipeline * Add docs, specs, and comments. * Work on test failures * Phase tests passing * Skip @tag :old_errors for now, fix pipeline test * Pass variables as only part of provided_values * Add 'directive' to parser rule * Support for 'on' in certain contexts * Directive expansion (#136) * Basics for Doc/Schema KnownDirectives validation * Cleanup some old validations, protocol * Start to deal with validation of IDL documents * Work on directives validation * KnownDirectives validation, cleanup * Update flatten to pay attention to directive flags * Ensure KnownDirectives validation runs for schemas * coerce variables given as strings for enums (#139) * coerce variables given as strings for enums * fixes * Structural / Schema-related Validations (#138) * LoneAnonymousOperation * KnownFragmentNames, inline fragment parser tweak * Phase.Validation.KnownTypeNames * Core utilities for NoUndefinedVariables validation * NoUndefinedVariables * Missing files * NoUnusedVariables * NoUnusedFragments * UniqueFragmentNames * UniqueOperationNames * UniqueVariableNames * Extract error message to function * Fix parser warning * Restructure flags as a map for matching (#144) * Clear out old parser code (#145) * clean up warnings * use current operation when resolving * use custom default resolvers * non null fields are only invalid if they are also not deprecated * don't try to expand type if the parent schema node already is the type we want (#148) * Execution test cleanup (#146) * Use current operation in execution * No missing input stubs for deprecated fields * Restructure result tree, attach to operation * Clean out old execution, more type massaging * fix warnings * Fix introspection tests, add debug phase * Fix non-typeless inline fragment tests * v1.2: Wrap up all non-error related test failures (#152) * Fix flattening * All happy path tests green! * Fix compilation warnings * v1.2: Build errors from Blueprint tree (#153) * Towards resolution building Phase.Error structs * 484 tests, 22 failures & field suggestions * Validation: VariablesAreInputTypes, tests * GREEN * ScalarLeafs validation * Basic pipeline tests, hook in ScalarLeafs * Update introspection test * v1.2: Basic Documentation Pass (#159) * @moduledoc for toplevel & adapter cleanup * First pass at CHANGELOG, bump version * Small wording change, typo * Enforce validation errors skipping resolution (#164) * Don't include data fields if validation fails * Work towards pipeline cleanup * Return values from phases can control the pipeline * Insert after a phase, ensure adapter * Simplify/unify options to phases (#166) * Simplify/unify options to phases * Cleanup tests, check for operation during validation * Use concrete resolvers for interface fields. * Temporarily add in Debug phase post-flatten * Fix a type condition check in resolution, docs. * Move to %Absinthe.Resolution{} * failing test case (#168) * failing test case * bug fix * More CHANGELOG fun * 2 and 3 arity function support * version bump * changelog entry * Fix introspection breakage on lists, add test (#171) * bug fix: actually stick the full field info on the definition * alpha 2 * Fix unhandled argument variable cases. (#160) * failing test cases with various nested variable situations * initial input value work * schema doesn't gag on basic argument values * schema doesn't gag on basic argument values * basic missing flagging * list values * once again back to basic arguments * solve infinite loop issue * handle list coercion * handle missing variables properly * tons of validation progress * all passing arguments of correct type * 33 test failures * charlists => strings" * more test fixes * more test progress * remove some duplicate errors * handle nil variables properly * arguments tests are green * just uniqueness errors now * omg they're all greeN' * remove some unneeded test * obselete not necessary * beta commit * updated docs deps * coerce string inputs to enum inputs when they're found as part of a variable (#178) * Fix #174 (#179) * failing test case to exhibit bug * Fixes #174 by doing a deep merge on the fragments * Fixed type resolution of wrapped types (#180) * Fixed type resolution of wrapped types * Code tidy-up * Fixed Pipeline.without/2 (#181) * Resolution Plugin System. Includes Async (#183) * basic async works * now we'll run resolution as many times as necessary becuase we have an accumulator * fleshed out resolution plugin system * cleanup and improve plugin API * it would help if I added all the files * stabilization of plugin API. also docs * tests * fix dumb mistake * improved docs * Batching (#184) * working batching * improved docs * allow timeout opts for async * improved batching and plugin docs * fix merge errors * version bump * correct version * ensure we dont' strip out false input object fields from args * Fix for resolution of list of union type (#188) * moduledoc false all the things (#186) * relocate the call function for resolution functions to somewhere more public facing * Metadata utility (#187) * Add `meta` notation macro and `Type.meta/2` utility * Add Absinthe.Type.meta/1 * v1.2 updates to README, CHANGELOG (#191) * Reformat CHANGELOG * Add CHANGELOG entry on validation errors * README cleanup * Some CHANGELOG placeholders for Ben * fill out changelog * Add metadata mention
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Goals
absinthe_test.exs, etc.Blueprint.Document.Resulttypes on the current operation