Hacktoberfest 2026: los issues que los mantenedores marcaron para octubre, abiertos y aptos para principiantes. Explorar issues de Hacktoberfest

Increase specificity of integration tests

Abierto
#554 0 comentarios 0 reacciones 0 asignados Ver en GitHub

Nadie ha tomado este issue todavía.

Evaluación

Dificultad
3/5
Tiempo estimado
1-2 días
Aptitud para principiantes
50/100
Tipo de issue
Refactorización
Claridad
Bien especificado
Estado de actividad
Estancado
Stack tecnológico
lua
Área
testing-qa

Línea de trabajo

Identify the integration test files containing the listed tests (e.g., testChainingPropagationThroughSwap1, testFirstHoverFrameMatch, frameTricksTest). For each, replace full replay loading with minimal puzzle setups using scheduled garbage and replay inputs. Run the relevant test files to confirm behavior is preserved. Done when all scoped tests are converted and the test suite passes.

Escrito por el modelo de indexación a partir del texto del issue.

Descripción

Cleanup engine priority: 0 - high

Our current integration tests for engine functionality are very broad in the manner that they load up an entire replay and play it, only pausing at specific moments to verify behaviour.
As the engine changes over time to provide a better gameplay experience, replays used in integration tests may break for reasons unrelated to the actual change in the engine.
For most of these integration tests it should be possible to verify the behaviour by creating a puzzle with extra steps e.g. garbage scheduled to fall at specific times along with replay inputs that mimic the actions in the original replay.
This way the approximately 99% of each replay that aren't relevant for the behaviour verification can be eliminated and integration tests are likely to hold even through engine changes.

List of tests for conversion within the scope of this issue:

  • testChainingPropagationThroughSwap1
  • testFirstHoverFrameMatch
  • testHoverChainOverGarbageClear
  • horizontalSwapIntoHoverTest
  • noInputsInVsIsDrawTest
  • frameTricksTest; should be divided into multiple:
    • stealth
    • insert
    • outsert
    • platform
    • catch
    • grounded catch
    • DAS catch
    • stealth catch
    • grounded stealth catch
    • slide
    • bloop
    • yoschi's dumptruck
    • tornado
    • mato special
  • catchAndSyncTest (only the sync)
  • downStackDropsSandwichedGarbageAllTogether
  • matchMetalAndGarbageClearsAllMetalTest
  • fallingWhileHoverBeginsDoesNotChain
  • StackRollbackReplayTests
    • rollback from death
    • rolling back around attack timings in all discrete configurations
  • simpleTouchTest; all variations mentioned in the comments in separate tests
  • GarbageQueue tests; these should be remade to only feature the GarbageQueue interface instead of Match
  • testHoverInheritanceOverSwapOverGarbageHover (for the hover)
  • testHoverInheritanceOverSwapOverGarbageHover (for shock panel generation; that cannot be easily replicated with the kind of test demanded by this issue; get creative and probably do this last)

The following tests are intentionally unspecific in nature; we cannot really do anything but replace them when implementing breaking changes that affect a wider array of replays:

  • basicEndlessTest
  • basicTimeAttackTest
  • basicVsTest
  • basicVsTest2

The following tests will just become plain obsolete when implementing breaking changes that affect a wider array of replays, usually because they are testing for compatibility with older engine versions:

  • movingBeforeInPositionDisallowedPriorToTouch

Non-maintenance issues that would make this a lot easier to implement:

  • #137
  • #202

High priority as it is blocking several engine changes and bugfixes, including:

  • #663
  • #634
  • #624
Lenguaje dominante
Lua
Estrellas
30
Forks
20
Merge medio
6 d 12 h
PR fusionados (30 d)
6

Preparar el entorno

Primeros pasos

  1. Lee el issue completo y luego la guía de contribución del proyecto.
  2. Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
  3. Haz un fork del repositorio y trabaja en una rama.
  4. Abre un pull request que haga referencia al número del issue.

Más de panel-attack/panel-game

Todos los issues de panel-attack/panel-game

Issues similares

Más issues de Lua

Recibe los nuevos issues en tu correo

Un resumen breve de issues de GitHub para principiantes.