Files
FlexLove/testing/__tests__/README.md
Michael Freno d5f85e82d1 tests
2025-09-18 18:27:57 -04:00

3.0 KiB

FlexLove GUI Library Test Suite

This directory contains comprehensive tests for the FlexLove GUI library. The tests cover layout behavior, property management, animations, and utility functions.

Test Files

  1. 01_absolute_positioning.lua

    • Basic absolute positioning
    • Parent-child relationships
    • Coordinate system tests
  2. 02_flex_direction.lua

    • Horizontal flex layout
    • Vertical flex layout
    • Mixed direction layouts
  3. 03_vertical_flex_direction.lua

    • Vertical layout specifics
    • Column-based layouts
    • Vertical alignment
  4. 04_justify_content.lua

    • Flex-start alignment
    • Flex-end alignment
    • Space-between distribution
    • Space-around distribution
  5. 05_align_items.lua

    • Cross-axis alignment
    • Stretch behavior
    • Baseline alignment
  6. 06_flex_wrap.lua

    • Wrapping behavior
    • Multi-line layouts
    • Wrap alignment
  7. 07_layout_validation.lua

    • Edge cases
    • Nested containers
    • Deep hierarchies
  8. 08_performance.lua

    • Large element counts
    • Deep hierarchies
    • Dynamic updates
    • Rapid resizing
  9. 09_element_properties.lua

    • Basic properties
    • Custom properties
    • Property modification
    • Visibility and clipping
  10. 10_animation_and_transform.lua

    • Basic transformations
    • Animation tweening
    • Easing functions
    • Animation cancellation
  11. 11_auxiliary_functions.lua

    • Element queries
    • Debug utilities
    • Layout helpers
    • Utility functions

Running Tests

Run All Tests

cd /path/to/station_alpha
for f in game/libs/testing/__tests__/flexlove/*.lua; do lua "$f"; done

Run Specific Test File

cd /path/to/station_alpha
lua game/libs/testing/__tests__/flexlove/[test_file].lua

Test Structure

Each test file follows this general structure:

package.path = package.path .. ";/path/to/station_alpha/?.lua"

local luaunit = require('game/libs/testing/luaunit')
require('game/libs/testing/loveStub')
local FlexLove = require('game/libs/FlexLove')

TestClassName = {}

function TestClassName:setUp()
    self.GUI = FlexLove.GUI
end

function TestClassName:testFeature()
    -- Test implementation
end

os.exit(luaunit.LuaUnit.run())

Known Issues

  1. Layout Calculations

    • Some justify-content calculations need verification
    • Align-items behavior needs adjustment
    • Flex-wrap positioning requires fixes
  2. Missing Methods

    • Animation and transform methods not implemented
    • Some utility functions not available
    • Custom property support incomplete
  3. Performance

    • Resize calculations may need optimization
    • Deep hierarchy performance could be improved

Contributing

When adding new tests:

  1. Follow the existing naming convention
  2. Add proper type annotations
  3. Include nil checks for optional features
  4. Document expected behavior
  5. Add the test to this README

Dependencies

  • Lua 5.1+ / LuaJIT
  • LÖVE2D (for graphics features)
  • luaunit (testing framework)