godog/CHANGELOG.md
John Lonergan 223efc3b14
Fix some type checks on the signatures of nested step handlers (#647)
* at some point someone changed the return type for nested steps from []string to godog.Steps but they forgot to adjust the type checks. The existing type checks were lax and unable to distinguish  []string from godog.Steps but in a couple of places in the code the value is coerced to godog.Steps and so if someone returned []string then the code would blow up. Additionally there were some tests aroudn these types but they also had not been updated but the test was passing for the wrong reason - the particular test expected an error but the cause of the error wasn't the one the code expected.

* CHANGELOG.md

* use chatgpt to regen the top of the code based on the new tests

* use chatgpt to regen the top of the code based on the new tests

* corrected the error messages of the param checks to indicate that the problem is the function signature and not the args being passed to the function, also added numerous extra assertions on the precise error messages returned. Now that the precise error is being verified in the test I have improved certain error messages to that more accurate detail is included in the errors

* added further constraints to the step arg mapping tests

* removed redundant test

* include a step error result in the reported error even when the ctx is nil
2024-10-15 13:25:13 +01:00

21 КиБ

Changelog

All notable changes to this project will be documented in this file.

This project adheres to Semantic Versioning.

This document is formatted according to the principles of Keep A CHANGELOG.

Unreleased

  • Improved the type checking of step return types and improved the error messages - (647 - johnlon)
  • Ambiguous step definitions will now be detected when strict mode is activated - (636 - johnlon)
  • Provide support for attachments / embeddings including a new example in the examples dir - (623 - johnlon)

v0.14.1

Added

  • Provide testing.T-compatible interface on test context, allowing usage of assertion libraries such as testify's assert/require - (571 - mrsheepuk)
  • Created releasing guidelines - (608 - glibas)

Fixed

v0.14.0

Added

  • Improve ErrSkip handling, add test for Summary and operations order (584 - vearutop)

Fixed

  • Remove line overwriting for scenario outlines in cucumber formatter (605 - glibas)
  • Remove duplicate warning message (590 - vearutop)
  • updated base formatter to set a scenario as passed unless there exist (582 - roskee)

Changed

v0.13.0

Added

Fixed

  • Improve hooks invocation flow (568 - vearutop)
  • Result of testing.T respect strict option (539 - eiel)

Changed

  • BREAKING CHANGE, upgraded cucumber and messages dependencies = (515 - otrava7)

v0.12.6

Changed

  • Each scenario is run with a cancellable context.Context which is cancelled at the end of the scenario. (514 - draganm)
  • README example is updated with context.Context and go test usage. (477 - vearutop)
  • Removed deprecation of godog.BindFlags. (498 - vearutop)
  • Pretty Print when using rules. (480 - dumpsterfireproject)

Fixed

  • Fixed a bug which would ignore the context returned from a substep.(488 - wichert)
  • Fixed a bug which would cause a panic when using the pretty formatter with a feature that contained a rule. (480 - dumpsterfireproject)
  • Multiple invocations of AfterScenario hooks in case of undefined steps. (494 - vearutop)
  • Add a check for missing test files and raise a more helpful error. (468 - ALCooper12)
  • Fix version subcommand. Do not print usage if run subcommand fails. (475 - coopernurse)

Added

  • Add new option for created features with parsing from byte slices. (476 - akaswenwilk)

Deprecated

  • godog CLI tool prints deprecation warning. (489 - vearutop)

v0.12.5

Changed

  • Changed underlying cobra command setup to return errors instead of calling os.Exit directly to enable simpler testing. (454 - mxygem)
  • Remove use of deprecated methods from _examples. (460 - ricardogarfe)

Fixed

  • Support for go1.18 in godog cli mode (466 - vearutop)

v0.12.4

Added

  • Allow suite-level configuration of steps and hooks (453 - vearutop)

v0.12.3

Added

  • Automated binary releases with GitHub Actions (437 - vearutop)
  • Automated binary versioning with go install (437 - vearutop)
  • Module with local replace in examples (437 - vearutop)

Changed

  • suggest to use go install instead of the deprecated go get to install the godog binary (449 - dmitris)

Fixed

  • After Scenario hook is called before After Step (444 - vearutop)
  • check-go-version in Makefile to run on WSL. (443 - mxygem)

v0.12.2

Fixed

  • Error in go mod tidy with GO111MODULE=off (436 - vearutop)

v0.12.1

Fixed

  • Unintended change of behavior in before step hook (424 - nhatthm)

v0.12.0

Added

  • Support for step definitions without return (364 - titouanfreville)
  • Contextualized hooks for scenarios and steps (409 - vearutop)
  • Step result status in After hook (409 - vearutop)
  • Support auto converting doc strings to plain strings (380 - chirino)
  • Use multiple formatters in the same test run (392 - vearutop)
  • Added RetrieveFeatures() method to godog.TestSuite (276 - radtriste)
  • Added support to create custom formatters (372 - leviable)

Changed

  • Upgraded gherkin-go to v19 and messages-go to v16 (402 - mbow)
  • Generate simpler snippets that use *godog.DocString and *godog.Table (379 - chirino)

Deprecated

  • ScenarioContext.BeforeScenario, use ScenarioContext.Before (409) - vearutop)
  • ScenarioContext.AfterScenario, use ScenarioContext.After (409) - vearutop)
  • ScenarioContext.BeforeStep, use ScenarioContext.StepContext().Before (409) - vearutop)
  • ScenarioContext.AfterStep, use ScenarioContext.StepContext().After (409) - vearutop)

Fixed

  • Incorrect step definition output for Data Tables (411 - karfrank)
  • ScenarioContext.AfterStep not invoked after a failed case (409 - vearutop))
  • Can't execute multiple specific scenarios in the same feature file (414 - vearutop))

v0.11.0

Added

  • Created a simple example for a custom formatter (330 - lonnblad)
  • --format junit:result.xml will now write to result.xml (331 - lonnblad)
  • Added make commands to create artifacts and upload them to a github release (333 - lonnblad)
  • Created release notes and changelog for v0.11.0 (355 - lonnblad)
  • Created v0.11.0-rc2 (362 - lonnblad)

Changed

  • Added Cobra for the Command Line Interface (321 - lonnblad)
  • Added internal packages for formatters, storage and models (323 - lonnblad)
  • Added an internal package for tags filtering (326 - lonnblad)
  • Added an internal pkg for the builder (327 - lonnblad)
  • Moved the parser code to a new internal pkg (329 - lonnblad)
  • Moved StepDefinition to the formatters pkg (332 - lonnblad)
  • Removed go1.12 and added go1.15 to CI config (356 - lonnblad)

Fixed

  • Improved the help text of the formatter flag in the run command (347 - lonnblad)
  • Removed $GOPATH from the README.md and updated the example (349 - lonnblad)
  • Fixed the undefined step definitions help (350 - lonnblad)
  • Added a comment regarding running the examples within the $GOPATH (352 - lonnblad)
  • doc(FAQ/TestMain): testing.M.Run() is optional (353 - hansbogert)
  • Made a fix for the unstable Randomize Run tests (354 - lonnblad)
  • Fixed an issue when go test is parsing command-line flags (359 - lonnblad)
  • Make pickleStepIDs unique accross multiple paths (366 - rickardenglund)

Removed

v0.10.0

Added

  • Added concurrency support to the pretty formatter (275 - lonnblad)
  • Added concurrency support to the events formatter (274 - lonnblad)
  • Added concurrency support to the cucumber formatter (273 - lonnblad)
  • Added an example for how to use assertion pkgs like testify with godog (289 - lonnblad)
  • Added the new TestSuiteInitializer and ScenarioInitializer (294 - lonnblad)
  • Added an in-mem storage for pickles (304 - lonnblad)
  • Added Pickle and PickleStep results to the in-mem storage (305 - lonnblad)
  • Added features to the in-mem storage (306 - lonnblad)
  • Broke out some code from massive files into new files (307 - lonnblad)
  • Added support for concurrent scenarios (311 - lonnblad)

Changed

  • Broke out snippets gen and added sorting on method name (271 - lonnblad)
  • Updated so that we run all tests concurrent now (278 - lonnblad)
  • Moved fmt tests to a godog_test pkg and restructured the fmt output tests (295 - lonnblad)
  • Moved builder tests to a godog_test pkg (296 - lonnblad)
  • Made the builder tests run in parallel (298 - lonnblad)
  • Refactored suite_context.go (300 - lonnblad)
  • Added better testing of the Context Initializers and TestSuite{}.Run() (301 - lonnblad)
  • Updated the README.md (302 - lonnblad)
  • Unexported some exported properties in unexported structs (303 - lonnblad)
  • Refactored some states in the formatters and feature struct (310 - lonnblad)

Deprecated

  • Deprecated SuiteContext and ConcurrentFormatter (314 - lonnblad)

Fixed

  • Fixed failing builder tests due to the v0.9.0 change (lonnblad)
  • Update paths to screenshots for examples (270 - leviable)
  • Made progress formatter verification a bit more accurate (lonnblad)
  • Added comparison between single and multi threaded runs (272 - lonnblad)
  • Fixed issue with empty feature file causing nil pointer deref (288 - lonnblad)
  • Updated linting checks in circleci config and fixed linting issues (290 - lonnblad)
  • Readded some legacy doc for FeatureContext (297 - lonnblad)
  • Fixed an issue with calculating time for junit testsuite (308 - lonnblad)
  • Fixed so that we don't execute features with zero scenarios (315 - lonnblad)
  • Fixed the broken --random flag (317 - lonnblad)

Removed

0.9.0

Changed

Fixed

0.8.1

Added

Changed

  • Renamed the examples directory to _examples, removing dependencies from the Go module (218 - axw)

Fixed

  • Find/Replaced references to DATA-DOG/godog -> cucumber/godog for docs. (209 - smikulcik)
  • Fixed missing links in changelog to be correctly included! (mxygem)

0.8.0

Added

  • Added initial CircleCI config. (mxygem)
  • Added concurrency support for JUnit formatting (lonnblad)

Changed

  • Changed code references to DATA-DOG/godog to cucumber/godog to help get things building correctly. (mxygem)