Flutter Test Report – astromatrix-flutter
Generated: 4/25/2026, 12:01:51 AM
Summary
Passed: 1470
Failed: 7
Skipped: 14
Test Results
Test #1
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/traits_api_test.dart
Test #2
(unknown) —
SUCCESS
(setUpAll)
Logs:
✅ Storage initialized
Test #3
(unknown) —
SUCCESS
🚀 Traits API - Multiple Components Test
Logs:
Skip: Requires real Traits/Component API
Test #4
(unknown) —
SUCCESS
🔬 API Response Format Validation
Logs:
Skip: Requires real Traits API
Test #5
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/core/storage_service_test.dart
Test #6
[📋 GROUP: StorageService string operations]
(unknown) —
SUCCESS
📋 GROUP: StorageService string operations 🧪 TEST: saveString/getString round-trip
Logs:
🧪 TEST: saveString/getString round-trip
✅ Alice saved and retrieved
Test #7
[📋 GROUP: StorageService string operations]
(unknown) —
SUCCESS
📋 GROUP: StorageService string operations 🧪 TEST: getString returns null for missing key
Logs:
🧪 TEST: getString returns null for missing key
✅ Returns null
Test #8
[📋 GROUP: StorageService int operations]
(unknown) —
SUCCESS
📋 GROUP: StorageService int operations 🧪 TEST: saveInt/getInt round-trip
Logs:
🧪 TEST: saveInt/getInt round-trip
✅ 30 saved and retrieved
Test #9
[📋 GROUP: StorageService int operations]
(unknown) —
SUCCESS
📋 GROUP: StorageService int operations 🧪 TEST: getInt returns null for missing key
Logs:
🧪 TEST: getInt returns null for missing key
✅ Returns null
Test #10
[📋 GROUP: StorageService bool operations]
(unknown) —
SUCCESS
📋 GROUP: StorageService bool operations 🧪 TEST: saveBool/getBool round-trip
Logs:
🧪 TEST: saveBool/getBool round-trip
✅ true saved and retrieved
Test #11
[📋 GROUP: StorageService bool operations]
(unknown) —
SUCCESS
📋 GROUP: StorageService bool operations 🧪 TEST: false value round-trip
Logs:
🧪 TEST: false value round-trip
✅ false saved and retrieved
Test #12
[📋 GROUP: StorageService double operations]
(unknown) —
SUCCESS
📋 GROUP: StorageService double operations 🧪 TEST: saveDouble/getDouble round-trip
Logs:
🧪 TEST: saveDouble/getDouble round-trip
✅ 51.5074 saved and retrieved
Test #13
[📋 GROUP: StorageService stringList operations]
(unknown) —
SUCCESS
📋 GROUP: StorageService stringList operations 🧪 TEST: saveStringList/getStringList round-trip
Logs:
🧪 TEST: saveStringList/getStringList round-trip
✅ [sun, moon, venus] round-trip
Test #14
[📋 GROUP: StorageService stringList operations]
(unknown) —
SUCCESS
📋 GROUP: StorageService stringList operations 🧪 TEST: empty list round-trip
Logs:
🧪 TEST: empty list round-trip
✅ Empty list round-trip
Test #15
[📋 GROUP: StorageService remove and clear]
(unknown) —
SUCCESS
📋 GROUP: StorageService remove and clear 🧪 TEST: remove deletes a key
Logs:
🧪 TEST: remove deletes a key
✅ Key removed
Test #16
[📋 GROUP: StorageService remove and clear]
(unknown) —
SUCCESS
📋 GROUP: StorageService remove and clear 🧪 TEST: clear removes all keys
Logs:
🧪 TEST: clear removes all keys
✅ All keys cleared
Test #17
[📋 GROUP: StorageService containsKey and getKeys]
(unknown) —
SUCCESS
📋 GROUP: StorageService containsKey and getKeys 🧪 TEST: containsKey returns true for existing
Logs:
🧪 TEST: containsKey returns true for existing
✅ Correct for both cases
Test #18
[📋 GROUP: StorageService containsKey and getKeys]
(unknown) —
SUCCESS
📋 GROUP: StorageService containsKey and getKeys 🧪 TEST: getKeys returns all stored keys
Logs:
🧪 TEST: getKeys returns all stored keys
✅ Keys: [exists, key1, key2]
Test #19
[📋 GROUP: StorageService set/get]
(unknown) —
SUCCESS
📋 GROUP: StorageService set/get 🧪 TEST: set/get with string
Logs:
🧪 TEST: set/get with string
✅ String via set/get
Test #20
[📋 GROUP: StorageService set/get]
(unknown) —
SUCCESS
📋 GROUP: StorageService set/get 🧪 TEST: set/get with int
Logs:
🧪 TEST: set/get with int
✅ Int via set/get
Test #21
[📋 GROUP: StorageService set/get]
(unknown) —
SUCCESS
📋 GROUP: StorageService set/get 🧪 TEST: set/get with bool
Logs:
🧪 TEST: set/get with bool
✅ Bool via set/get
Test #22
[📋 GROUP: StorageService set/get]
(unknown) —
SUCCESS
📋 GROUP: StorageService set/get 🧪 TEST: set/get with double
Logs:
🧪 TEST: set/get with double
✅ Double via set/get
Test #23
[📋 GROUP: StorageService set/get]
(unknown) —
SUCCESS
📋 GROUP: StorageService set/get 🧪 TEST: set null removes key
Logs:
🧪 TEST: set null removes key
✅ Null removes key
Test #24
[📋 GROUP: StorageService set/get]
(unknown) —
SUCCESS
📋 GROUP: StorageService set/get 🧪 TEST: set/get with Map (complex type)
Logs:
🧪 TEST: set/get with Map (complex type)
✅ Map stored as JSON
Test #25
[📋 GROUP: StorageService export/import]
(unknown) —
SUCCESS
📋 GROUP: StorageService export/import 🧪 TEST: exportDataToJson returns valid JSON
Logs:
🧪 TEST: exportDataToJson returns valid JSON
✅ Valid JSON exported
Test #26
[📋 GROUP: StorageService export/import]
(unknown) —
SUCCESS
📋 GROUP: StorageService export/import 🧪 TEST: importDataFromJson restores data
Logs:
🧪 TEST: importDataFromJson restores data
✅ Data imported
Test #27
[📋 GROUP: StorageService export/import]
(unknown) —
SUCCESS
📋 GROUP: StorageService export/import 🧪 TEST: getAllData returns map of all string data
Logs:
🧪 TEST: getAllData returns map of all string data
✅ getAllData: 14 entries
Test #28
[📋 GROUP: StorageService initialization]
(unknown) —
SUCCESS
📋 GROUP: StorageService initialization 🧪 TEST: saveLiveServerValue/getLiveServerValue
Logs:
🧪 TEST: saveLiveServerValue/getLiveServerValue
✅ liveServerValue round-trip
Test #29
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/core/language_service_test.dart
Test #30
[📋 GROUP: kSupportedLanguages]
(unknown) —
SUCCESS
📋 GROUP: kSupportedLanguages 🧪 TEST: contains all 7 languages
Logs:
🧪 TEST: contains all 7 languages
✅ All 7 languages present
Test #31
[📋 GROUP: kSupportedLanguages]
(unknown) —
SUCCESS
📋 GROUP: kSupportedLanguages 🧪 TEST: all keys are 2-letter codes
Logs:
🧪 TEST: all keys are 2-letter codes
✅ All keys are 2-letter codes
Test #32
[📋 GROUP: getLang passthrough]
(unknown) —
SUCCESS
📋 GROUP: getLang passthrough 🧪 TEST: returns text unchanged when no translations loaded
Logs:
🧪 TEST: returns text unchanged when no translations loaded
✅ "Hello World" passed through
Test #33
[📋 GROUP: getLang passthrough]
(unknown) —
SUCCESS
📋 GROUP: getLang passthrough 🧪 TEST: returns empty string for empty input
Logs:
🧪 TEST: returns empty string for empty input
✅ Empty passthrough
Test #34
[📋 GROUP: getLang passthrough]
(unknown) —
SUCCESS
📋 GROUP: getLang passthrough 🧪 TEST: returns special characters unchanged
Logs:
🧪 TEST: returns special characters unchanged
✅ Special characters passed through
Test #35
[📋 GROUP: getLang passthrough]
(unknown) —
SUCCESS
📋 GROUP: getLang passthrough 🧪 TEST: returns numbers unchanged
Logs:
🧪 TEST: returns numbers unchanged
✅ Numbers passed through
Test #36
[📋 GROUP: getLang passthrough]
(unknown) —
SUCCESS
📋 GROUP: getLang passthrough 🧪 TEST: long text passthrough
Logs:
🧪 TEST: long text passthrough
✅ Long text passed through
Test #37
[📋 GROUP: LanguageService singleton]
(unknown) —
SUCCESS
📋 GROUP: LanguageService singleton 🧪 TEST: factory returns same instance
Logs:
🧪 TEST: factory returns same instance
✅ Same instance
Test #38
[📋 GROUP: LanguageService singleton]
(unknown) —
SUCCESS
📋 GROUP: LanguageService singleton 🧪 TEST: currentLanguage defaults to en
Logs:
🧪 TEST: currentLanguage defaults to en
✅ Default language is en
Test #39
[📋 GROUP: LanguageService singleton]
(unknown) —
SUCCESS
📋 GROUP: LanguageService singleton 🧪 TEST: currentLanguageName returns English
Logs:
🧪 TEST: currentLanguageName returns English
✅ currentLanguageName = English
Test #40
(unknown) —
SUCCESS
🔍 API URL and Parameters Check
Logs:
🔍 Checking API URL construction...
Expected API endpoint:
https://astromatrix.org/api/utility/GetComponentTraits
Expected parameters:
component: [URL encoded component name]
Category: [URL encoded category]
Language: en (or user preference)
Example URL for "Saturn Sextile Uranus":
https://astromatrix.org/api/utility/GetComponentTraits?component=Saturn%20Sextile%20Uranus&Category=Planet%20Aspects&Language=en
📞 Making real API call...
🌐 Fetching traits: https://club.astromatrix.org/component/GetComponentTraits?component=Saturn%20Sextile%20Uranus&Category=Planet%20Aspects&Language=en
🌐 GET: https://club.astromatrix.org/component/GetComponentTraits?component=Saturn%20Sextile%20Uranus&Category=Planet%20Aspects&Language=en
📡 Call completed:
Success: false
❌ API call failed
Error: Server error (404)
Test #41
(unknown) —
SUCCESS
📊 Comprehensive Traits Summary
Logs:
Skip: Requires real Traits API
Test #42
(unknown) —
SUCCESS
(tearDownAll)
Test #43
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/core/payload_service_test.dart
Test #44
[📋 GROUP: ChartPreferences]
(unknown) —
SUCCESS
📋 GROUP: ChartPreferences 🧪 TEST: defaults returns expected values
Logs:
🧪 TEST: defaults returns expected values
✅ All default values correct
Test #45
[📋 GROUP: ChartPreferences]
(unknown) —
SUCCESS
📋 GROUP: ChartPreferences 🧪 TEST: custom constructor sets fields
Logs:
🧪 TEST: custom constructor sets fields
✅ Custom constructor values correct
Test #46
[📋 GROUP: PayloadService.buildFromUser (birth chart)]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildFromUser (birth chart) 🧪 TEST: creates birth chart payload
Logs:
🧪 TEST: creates birth chart payload
buildTransitDate:
Input date: 2025-06-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ Birth chart payload built correctly
Test #47
[📋 GROUP: PayloadService.buildFromUser (birth chart)]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildFromUser (birth chart) 🧪 TEST: transit date included
Logs:
🧪 TEST: transit date included
buildTransitDate:
Input date: 2025-03-15 10:30:00.000 (device local)
Location: none
Adjusted date: 2025-03-15 10:30:00.000
Time: 10:30
Offset: 0
Lat/Lng: null, null
✅ Transit date present: day=15, month=3
Test #48
[📋 GROUP: PayloadService.buildFromUser (birth chart)]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildFromUser (birth chart) 🧪 TEST: fullDate format is DD/MM/YYYY
Logs:
🧪 TEST: fullDate format is DD/MM/YYYY
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ fullDate=15/6/1990
Test #49
[📋 GROUP: PayloadService.buildFromUser (transit chart)]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildFromUser (transit chart) 🧪 TEST: creates transit chart with correct type
Logs:
🧪 TEST: creates transit chart with correct type
buildTransitDate:
Input date: 2025-06-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ date1.type=Transit
Test #50
[📋 GROUP: PayloadService.buildFromUser (relationship charts)]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildFromUser (relationship charts) 🧪 TEST: synastry chart includes date2 for user2
Logs:
🧪 TEST: synastry chart includes date2 for user2
buildTransitDate:
Input date: 2025-06-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ date2 has Partner in Paris
Test #51
[📋 GROUP: PayloadService.buildFromUser (relationship charts)]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildFromUser (relationship charts) 🧪 TEST: composite chart has date2
Logs:
🧪 TEST: composite chart has date2
buildTransitDate:
Input date: 2025-06-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ Composite date2 present
Test #52
[📋 GROUP: PayloadService.buildFromUser (special types)]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildFromUser (special types) 🧪 TEST: draconic chart type
Logs:
🧪 TEST: draconic chart type
buildTransitDate:
Input date: 2025-06-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ Draconic with progressedDate
Test #53
[📋 GROUP: PayloadService.buildFromUser (special types)]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildFromUser (special types) 🧪 TEST: progressed chart type
Logs:
🧪 TEST: progressed chart type
buildTransitDate:
Input date: 2025-06-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ Progressed with progressedDate
Test #54
[📋 GROUP: PayloadService.buildFromUser (special types)]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildFromUser (special types) 🧪 TEST: solar return chart type
Logs:
🧪 TEST: solar return chart type
buildTransitDate:
Input date: 2025-06-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ Solar Return type
Test #55
[📋 GROUP: PayloadService.buildFromUser (special types)]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildFromUser (special types) 🧪 TEST: lunar return chart type
Logs:
🧪 TEST: lunar return chart type
buildTransitDate:
Input date: 2025-06-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ Lunar Return type
Test #56
[📋 GROUP: PayloadService.buildFromUser (special types)]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildFromUser (special types) 🧪 TEST: relocation chart with location
Logs:
🧪 TEST: relocation chart with location
buildTransitDate:
Input date: 2025-06-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ Relocation with date2 lat/lng
Test #57
[📋 GROUP: PayloadService.buildFromUser (special types)]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildFromUser (special types) 🧪 TEST: current planets chart type
Logs:
🧪 TEST: current planets chart type
buildTransitDate:
Input date: 2025-06-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ Current Planets type
Test #58
[📋 GROUP: PayloadService.userToChartDate]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.userToChartDate 🧪 TEST: converts user to chart date with all fields
Logs:
🧪 TEST: converts user to chart date with all fields
✅ All fields correct
Test #59
[📋 GROUP: PayloadService.userToChartDate]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.userToChartDate 🧪 TEST: timezone hours convert to minutes
Logs:
🧪 TEST: timezone hours convert to minutes
✅ 5.5h = 330min
Test #60
[📋 GROUP: PayloadService.userToChartDate]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.userToChartDate 🧪 TEST: large timezone assumed already minutes
Logs:
🧪 TEST: large timezone assumed already minutes
✅ 330 stays 330
Test #61
[📋 GROUP: PayloadService.userToChartDate]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.userToChartDate 🧪 TEST: override location
Logs:
🧪 TEST: override location
✅ Location overridden
Test #62
[📋 GROUP: PayloadService.userToChartDate]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.userToChartDate 🧪 TEST: override type
Logs:
🧪 TEST: override type
✅ Type overridden to Transit
Test #63
[📋 GROUP: PayloadService.userToChartDate]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.userToChartDate 🧪 TEST: PM time detected correctly
Logs:
🧪 TEST: PM time detected correctly
✅ PM detected for 14:30
Test #64
[📋 GROUP: PayloadService.userToChartDate]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.userToChartDate 🧪 TEST: AM time detected correctly
Logs:
🧪 TEST: AM time detected correctly
✅ AM detected for 8:15
Test #65
[📋 GROUP: PayloadService.buildTransitDate]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildTransitDate 🧪 TEST: builds transit date without location
Logs:
🧪 TEST: builds transit date without location
buildTransitDate:
Input date: 2025-12-25 10:30:00.000 (device local)
Location: none
Adjusted date: 2025-12-25 10:30:00.000
Time: 10:30
Offset: 0
Lat/Lng: null, null
✅ Transit date: day=25, month=12
Test #66
[📋 GROUP: PayloadService.buildTransitDate]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildTransitDate 🧪 TEST: builds transit date with location
Logs:
🧪 TEST: builds transit date with location
buildTransitDate:
Input date: 2025-06-15 12:00:00.000 (device local)
Location: Sydney
Adjusted date: 2025-06-15 22:00:00.000Z
Time: 22:00
Offset: 600
Lat/Lng: -33.8688, 151.2093
✅ Transit date with Sydney location
Test #67
[📋 GROUP: PayloadService.buildTransitDate]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildTransitDate 🧪 TEST: fullDateStr has web-compatible format
Logs:
🧪 TEST: fullDateStr has web-compatible format
buildTransitDate:
Input date: 2025-01-11 17:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-11 17:00:00.000
Time: 17:00
Offset: 0
Lat/Lng: null, null
✅ fullDateStr=January 11th 2025 17:00
Test #68
[📋 GROUP: PayloadService.buildCurrentPlanets]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildCurrentPlanets 🧪 TEST: creates current planets payload
Logs:
🧪 TEST: creates current planets payload
buildTransitDate:
Input date: 2026-04-25 00:01:22.792507 (device local)
Location: none
Adjusted date: 2026-04-25 00:01:22.792507
Time: 0:01
Offset: 0
Lat/Lng: null, null
✅ Current planets payload built
Test #69
[📋 GROUP: PayloadService.buildCurrentPlanets]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildCurrentPlanets 🧪 TEST: accepts custom date
Logs:
🧪 TEST: accepts custom date
buildTransitDate:
Input date: 2025-03-21 06:00:00.000 (device local)
Location: none
Adjusted date: 2025-03-21 06:00:00.000
Time: 6:00
Offset: 0
Lat/Lng: null, null
✅ Custom date: day=21, month=3
Test #70
[📋 GROUP: PayloadService.buildFromForm]
(unknown) —
SUCCESS
📋 GROUP: PayloadService.buildFromForm 🧪 TEST: creates payload from birth form
Logs:
🧪 TEST: creates payload from birth form
buildTransitDate:
Input date: 2025-06-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ Form payload built correctly
Test #71
[📋 GROUP: PayloadService metadata]
(unknown) —
SUCCESS
📋 GROUP: PayloadService metadata 🧪 TEST: includes version and flags
Logs:
🧪 TEST: includes version and flags
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ version=2.5, mobile=true, descriptions=true
Test #72
[📋 GROUP: PayloadService metadata]
(unknown) —
SUCCESS
📋 GROUP: PayloadService metadata 🧪 TEST: includes uid and fid from user
Logs:
🧪 TEST: includes uid and fid from user
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ uid=uid1, fid=u1
Test #73
[📋 GROUP: PayloadService metadata]
(unknown) —
SUCCESS
📋 GROUP: PayloadService metadata 🧪 TEST: sidereal and smartOrb passed through
Logs:
🧪 TEST: sidereal and smartOrb passed through
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
✅ Koch, sidereal, smartOrb, orb=8
Test #74
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/asset_image_fallback_test.dart
Test #75
[📋 GROUP: AssetImageWithFallback]
(unknown) —
SUCCESS
📋 GROUP: AssetImageWithFallback 🧪 TEST: renders widget with specified dimensions
Logs:
🧪 TEST: renders widget with specified dimensions
✅ Widget rendered
Test #76
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/layouts_test.dart
Test #77
[📋 GROUP: AssetImageWithFallback]
(unknown) —
SUCCESS
📋 GROUP: AssetImageWithFallback 🧪 TEST: falls back to Icon when asset is missing
Logs:
🧪 TEST: falls back to Icon when asset is missing
✅ Fallback icon (star) shown when asset missing
Test #78
[📋 GROUP: LayoutWidths constants]
(unknown) —
SUCCESS
📋 GROUP: LayoutWidths constants 🧪 TEST: compactMaxWidth is 480
Logs:
🧪 TEST: compactMaxWidth is 480
Test #79
[📋 GROUP: LayoutWidths constants]
(unknown) —
SUCCESS
📋 GROUP: LayoutWidths constants 🧪 TEST: standardMaxWidth is 1200
Logs:
🧪 TEST: standardMaxWidth is 1200
Test #80
[📋 GROUP: LayoutWidths constants]
(unknown) —
SUCCESS
📋 GROUP: LayoutWidths constants 🧪 TEST: wideScreenBreakpoint is 600
Logs:
🧪 TEST: wideScreenBreakpoint is 600
Test #81
[📋 GROUP: LayoutWidths constants]
(unknown) —
SUCCESS
📋 GROUP: LayoutWidths constants 🧪 TEST: chartDesktopBreakpoint is 1400
Logs:
🧪 TEST: chartDesktopBreakpoint is 1400
Test #82
[📋 GROUP: AssetImageWithFallback]
(unknown) —
SUCCESS
📋 GROUP: AssetImageWithFallback 🧪 TEST: default fallback icon is Icons.circle
Logs:
🧪 TEST: default fallback icon is Icons.circle
✅ Default circle icon shown
Test #83
[📋 GROUP: LayoutWidths constants]
(unknown) —
SUCCESS
📋 GROUP: LayoutWidths constants 🧪 TEST: chartMinPanelWidth is 280
Logs:
🧪 TEST: chartMinPanelWidth is 280
Test #84
[📋 GROUP: AssetImageWithFallback]
(unknown) —
SUCCESS
📋 GROUP: AssetImageWithFallback 🧪 TEST: custom icon color is applied
Logs:
🧪 TEST: custom icon color is applied
✅ Icon color is red as specified
Test #85
[📋 GROUP: AssetImageWithFallback]
(unknown) —
SUCCESS
📋 GROUP: AssetImageWithFallback 🧪 TEST: respects width and height on fallback icon
Logs:
🧪 TEST: respects width and height on fallback icon
✅ Fallback icon size matches width (64)
Test #86
[📋 GROUP: AssetImageWithFallback]
(unknown) —
SUCCESS
📋 GROUP: AssetImageWithFallback 🧪 TEST: with imageUrl still shows fallback when both fail
Logs:
🧪 TEST: with imageUrl still shows fallback when both fail
✅ Widget still renders when both asset and URL fail
Test #87
[📋 GROUP: AppScrollBehavior]
(unknown) —
SUCCESS
📋 GROUP: AppScrollBehavior 🧪 TEST: buildScrollbar returns child
Logs:
🧪 TEST: buildScrollbar returns child
Test #88
[📋 GROUP: ConstrainedContent]
(unknown) —
SUCCESS
📋 GROUP: ConstrainedContent 🧪 TEST: renders child within max width
Logs:
🧪 TEST: renders child within max width
Test #89
[📋 GROUP: ConstrainedContent]
(unknown) —
SUCCESS
📋 GROUP: ConstrainedContent 🧪 TEST: centered within parent
Logs:
🧪 TEST: centered within parent
Test #90
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/layout_components_test.dart
Test #91
[📋 GROUP: ConstrainedContent]
(unknown) —
SUCCESS
📋 GROUP: ConstrainedContent 🧪 TEST: standard max width
Logs:
🧪 TEST: standard max width
Test #92
[📋 GROUP: ConstrainedContent]
(unknown) —
SUCCESS
📋 GROUP: ConstrainedContent 🧪 TEST: compact max width
Logs:
🧪 TEST: compact max width
Test #93
[📋 GROUP: ConstrainedContent]
(unknown) —
SUCCESS
📋 GROUP: ConstrainedContent 🧪 TEST: constrains child width
Logs:
🧪 TEST: constrains child width
✅ ConstrainedBox maxWidth = 300
Test #94
[📋 GROUP: MatrixControlPanel]
(unknown) —
SUCCESS
📋 GROUP: MatrixControlPanel 🧪 TEST: renders category name and dropdown arrow
Logs:
🧪 TEST: renders category name and dropdown arrow
✅ Category "Purpose" and dropdown icon shown
Test #95
[📋 GROUP: MatrixControlPanel]
(unknown) —
SUCCESS
📋 GROUP: MatrixControlPanel 🧪 TEST: onTap fires when tapped
Logs:
🧪 TEST: onTap fires when tapped
✅ onTap callback triggered
Test #96
[📋 GROUP: MatrixControlPanel]
(unknown) —
SUCCESS
📋 GROUP: MatrixControlPanel 🧪 TEST: renders trailing widget when provided
Logs:
🧪 TEST: renders trailing widget when provided
✅ Trailing widget rendered
Test #97
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/form_controls_test.dart
Test #98
[📋 GROUP: MatrixControlPanel]
(unknown) —
SUCCESS
📋 GROUP: MatrixControlPanel 🧪 TEST: icon path fallback to Icons.category
Logs:
🧪 TEST: icon path fallback to Icons.category
✅ Fallback icon shown for bad path
Test #99
[📋 GROUP: MatrixCategoryTab]
(unknown) —
SUCCESS
📋 GROUP: MatrixCategoryTab 🧪 TEST: renders category text
Logs:
🧪 TEST: renders category text
✅ "Evolution" text rendered
Test #100
[📋 GROUP: MatrixCategoryTab]
(unknown) —
SUCCESS
📋 GROUP: MatrixCategoryTab 🧪 TEST: fires onTap when tapped
Logs:
🧪 TEST: fires onTap when tapped
✅ onTap fired
Test #101
[📋 GROUP: MatrixCategoryTab]
(unknown) —
SUCCESS
📋 GROUP: MatrixCategoryTab 🧪 TEST: active state applies bold font weight
Logs:
🧪 TEST: active state applies bold font weight
✅ Active tab has bold font weight
Test #102
[📋 GROUP: MatrixCategoryTab]
(unknown) —
SUCCESS
📋 GROUP: MatrixCategoryTab 🧪 TEST: inactive state applies normal font weight
Logs:
🧪 TEST: inactive state applies normal font weight
✅ Inactive tab has normal font weight
Test #103
[📋 GROUP: MatrixViewToggle]
(unknown) —
SUCCESS
📋 GROUP: MatrixViewToggle 🧪 TEST: shows list icon when isGridView is true
Logs:
🧪 TEST: shows list icon when isGridView is true
✅ Icons.list shown when in grid view
Test #104
[📋 GROUP: MatrixViewToggle]
(unknown) —
SUCCESS
📋 GROUP: MatrixViewToggle 🧪 TEST: shows grid icon when isGridView is false
Logs:
🧪 TEST: shows grid icon when isGridView is false
✅ Icons.grid_view shown when in list view
Test #105
[📋 GROUP: MatrixViewToggle]
(unknown) —
SUCCESS
📋 GROUP: MatrixViewToggle 🧪 TEST: fires onToggle when tapped
Logs:
🧪 TEST: fires onToggle when tapped
✅ onToggle fired
Test #106
[📋 GROUP: MatrixViewToggle]
(unknown) —
SUCCESS
📋 GROUP: MatrixViewToggle 🧪 TEST: tooltip matches view mode
Logs:
🧪 TEST: tooltip matches view mode
✅ Tooltip "List View" for grid mode
Test #107
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/pattern_card_test.dart
Test #108
(unknown) —
SUCCESS
(setUpAll)
Logs:
🔧 [TestHelpers] Registering test services...
✅ [TestHelpers] All test services registered
Test #109
[📋 GROUP: ValidationText]
(unknown) —
SUCCESS
📋 GROUP: ValidationText 🧪 TEST: shows error icon and message
Logs:
🧪 TEST: shows error icon and message
✅ Error icon + message displayed
Test #110
[📋 GROUP: ValidationText]
(unknown) —
SUCCESS
📋 GROUP: ValidationText 🧪 TEST: shows info icon when isError=false
Logs:
🧪 TEST: shows info icon when isError=false
✅ Info icon displayed
Test #111
[📋 GROUP: ValidationText]
(unknown) —
SUCCESS
📋 GROUP: ValidationText 🧪 TEST: renders in light theme
Logs:
🧪 TEST: renders in light theme
✅ Light theme renders
Test #112
[📋 GROUP: LabelText]
(unknown) —
SUCCESS
📋 GROUP: LabelText 🧪 TEST: displays label text
Logs:
🧪 TEST: displays label text
✅ Label displayed
Test #113
[📋 GROUP: LabelText]
(unknown) —
SUCCESS
📋 GROUP: LabelText 🧪 TEST: shows asterisk when required
Logs:
🧪 TEST: shows asterisk when required
✅ Asterisk shown for required
Test #114
[📋 GROUP: LabelText]
(unknown) —
SUCCESS
📋 GROUP: LabelText 🧪 TEST: no asterisk when not required
Logs:
🧪 TEST: no asterisk when not required
✅ No asterisk
Test #115
[📋 GROUP: LabelText]
(unknown) —
SUCCESS
📋 GROUP: LabelText 🧪 TEST: shows icon when provided
Logs:
🧪 TEST: shows icon when provided
✅ Icon displayed
Test #116
[📋 GROUP: LabelText]
(unknown) —
SUCCESS
📋 GROUP: LabelText 🧪 TEST: renders in light theme
Logs:
🧪 TEST: renders in light theme
✅ Light theme renders
Test #117
[📋 GROUP: InfoRow]
(unknown) —
SUCCESS
📋 GROUP: InfoRow 🧪 TEST: displays label and value in row layout
Logs:
🧪 TEST: displays label and value in row layout
✅ Label and value displayed in row
Test #118
[📋 GROUP: InfoRow]
(unknown) —
SUCCESS
📋 GROUP: InfoRow 🧪 TEST: displays in column layout
Logs:
🧪 TEST: displays in column layout
✅ Column layout rendered
Test #119
[📋 GROUP: InfoRow]
(unknown) —
SUCCESS
📋 GROUP: InfoRow 🧪 TEST: shows icon when provided
Logs:
🧪 TEST: shows icon when provided
✅ Icon displayed
Test #120
[📋 GROUP: InfoRow]
(unknown) —
SUCCESS
📋 GROUP: InfoRow 🧪 TEST: shows chevron when onTap provided
Logs:
🧪 TEST: shows chevron when onTap provided
✅ Chevron shown
Test #121
[📋 GROUP: InfoRow]
(unknown) —
SUCCESS
📋 GROUP: InfoRow 🧪 TEST: onTap callback fires
Logs:
🧪 TEST: onTap callback fires
✅ onTap fired
Test #122
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/form_controls_extended_test.dart
Test #123
[📋 GROUP: InfoRow]
(unknown) —
SUCCESS
📋 GROUP: InfoRow 🧪 TEST: shows trailing widget
Logs:
🧪 TEST: shows trailing widget
✅ Trailing widget displayed
Test #124
[📋 GROUP: InfoRow]
(unknown) —
SUCCESS
📋 GROUP: InfoRow 🧪 TEST: column layout with icon
Logs:
🧪 TEST: column layout with icon
✅ Column layout with icon
Test #125
[📋 GROUP: SegmentToggle]
(unknown) —
SUCCESS
📋 GROUP: SegmentToggle 🧪 TEST: displays label and toggle
Logs:
🧪 TEST: displays label and toggle
✅ Label displayed
Test #126
[📋 GROUP: SegmentToggle]
(unknown) —
SUCCESS
📋 GROUP: SegmentToggle 🧪 TEST: toggle fires onChanged
Logs:
🧪 TEST: toggle fires onChanged
✅ Toggle tested
Test #127
[📋 GROUP: PatternCard]
(unknown) —
SUCCESS
📋 GROUP: PatternCard 🧪 TEST: renders chart image and planet info
Logs:
🧪 TEST: renders chart image and planet info
✅ Chart WebView and Planet modality text rendered
Test #128
[📋 GROUP: SegmentToggle]
(unknown) —
SUCCESS
📋 GROUP: SegmentToggle 🧪 TEST: shows subtitle when provided
Logs:
🧪 TEST: shows subtitle when provided
✅ Subtitle displayed
Test #129
[📋 GROUP: SegmentToggle]
(unknown) —
SUCCESS
📋 GROUP: SegmentToggle 🧪 TEST: shows icon when provided
Logs:
🧪 TEST: shows icon when provided
✅ Icon displayed
Test #130
[📋 GROUP: DateTimePickerField]
(unknown) —
SUCCESS
📋 GROUP: DateTimePickerField 🧪 TEST: displays label as hint when no value
Logs:
🧪 TEST: displays label as hint when no value
✅ Label shown as hint
Test #131
[📋 GROUP: DateTimePickerField]
(unknown) —
SUCCESS
📋 GROUP: DateTimePickerField 🧪 TEST: displays value when provided
Logs:
🧪 TEST: displays value when provided
✅ Value displayed
Test #132
[📋 GROUP: DateTimePickerField]
(unknown) —
SUCCESS
📋 GROUP: DateTimePickerField 🧪 TEST: onTap fires when enabled
Logs:
🧪 TEST: onTap fires when enabled
✅ onTap fired
Test #133
[📋 GROUP: DateTimePickerField]
(unknown) —
SUCCESS
📋 GROUP: DateTimePickerField 🧪 TEST: does not fire onTap when disabled
Logs:
🧪 TEST: does not fire onTap when disabled
✅ Disabled - onTap not fired
Test #134
[📋 GROUP: PatternCard]
(unknown) —
SUCCESS
📋 GROUP: PatternCard 🧪 TEST: opens details modal on tap
Logs:
🧪 TEST: opens details modal on tap
✅ Details modal opened with description and aspects
Test #135
[📋 GROUP: PrimaryTextField]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextField 🧪 TEST: displays placeholder text
Logs:
🧪 TEST: displays placeholder text
✅ Placeholder displayed
Test #136
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/tab_switcher_test.dart
Test #137
[📋 GROUP: TabSwitcherItem]
(unknown) —
SUCCESS
📋 GROUP: TabSwitcherItem 🧪 TEST: stores text and optional icon
Logs:
🧪 TEST: stores text and optional icon
✅ text="Tab 1", icon=null
✅ text="Tab 2", icon=star
Test #138
[📋 GROUP: PatternCard]
(unknown) —
SUCCESS
📋 GROUP: PatternCard 🧪 TEST: handles missing description
Logs:
🧪 TEST: handles missing description
✅ Handled missing description gracefully
Test #139
(unknown) —
SUCCESS
(tearDownAll)
Logs:
🧹 [TestHelpers] Cleaning up test services...
✅ [TestHelpers] Cleanup complete
Test #140
[📋 GROUP: PrimaryTextField]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextField 🧪 TEST: accepts text input
Logs:
🧪 TEST: accepts text input
✅ Text entered: John
Test #141
[📋 GROUP: PrimaryTextField]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextField 🧪 TEST: password field has visibility toggle
Logs:
🧪 TEST: password field has visibility toggle
✅ Password toggle works
Test #142
[📋 GROUP: PrimaryTextField]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextField 🧪 TEST: renders with placeholder
Logs:
📋 GROUP: PrimaryTextField
🧪 TEST: renders with placeholder
Test #143
[📋 GROUP: PrimaryTextField]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextField 🧪 TEST: onChanged callback fires
Logs:
🧪 TEST: onChanged callback fires
✅ onChanged fired with "test"
Test #144
[📋 GROUP: PrimaryTextField]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextField 🧪 TEST: renders in light theme
Logs:
🧪 TEST: renders in light theme
✅ Light theme renders
Test #145
[📋 GROUP: ThumbWithBorder]
(unknown) —
SUCCESS
📋 GROUP: ThumbWithBorder 🧪 TEST: getPreferredSize returns correct dimensions
Logs:
🧪 TEST: getPreferredSize returns correct dimensions
✅ Size: 24x24 for radius=12
Test #146
[📋 GROUP: ThumbWithBorder]
(unknown) —
SUCCESS
📋 GROUP: ThumbWithBorder 🧪 TEST: default radius
Logs:
🧪 TEST: default radius
✅ Default size: 20x20 for radius=10
Test #147
[📋 GROUP: AppInputTheme]
(unknown) —
SUCCESS
📋 GROUP: AppInputTheme 🧪 TEST: copyWith returns new instance with overrides
Logs:
🧪 TEST: copyWith returns new instance with overrides
✅ copyWith works
Test #148
[📋 GROUP: AppInputTheme]
(unknown) —
SUCCESS
📋 GROUP: AppInputTheme 🧪 TEST: lerp with non-AppInputTheme returns self
Logs:
🧪 TEST: lerp with non-AppInputTheme returns self
✅ lerp(null) returns self
Test #149
[📋 GROUP: OptionsTheme]
(unknown) —
SUCCESS
📋 GROUP: OptionsTheme 🧪 TEST: copyWith preserves unchanged fields
Logs:
🧪 TEST: copyWith preserves unchanged fields
✅ copyWith works
Test #150
[📋 GROUP: OptionsTheme]
(unknown) —
SUCCESS
📋 GROUP: OptionsTheme 🧪 TEST: lerp with non-OptionsTheme returns self
Logs:
🧪 TEST: lerp with non-OptionsTheme returns self
✅ lerp(null) returns self
Test #151
[📋 GROUP: ParameterControlSliderTheme]
(unknown) —
SUCCESS
📋 GROUP: ParameterControlSliderTheme 🧪 TEST: copyWith works
Logs:
🧪 TEST: copyWith works
✅ copyWith works
Test #152
[📋 GROUP: ParameterControlSliderTheme]
(unknown) —
SUCCESS
📋 GROUP: ParameterControlSliderTheme 🧪 TEST: lerp with non-ParameterControlSliderTheme returns self
Logs:
🧪 TEST: lerp with non-ParameterControlSliderTheme returns self
✅ lerp(null) returns self
Test #153
[📋 GROUP: TabSwitcherTheme]
(unknown) —
SUCCESS
📋 GROUP: TabSwitcherTheme 🧪 TEST: copyWith works
Logs:
🧪 TEST: copyWith works
✅ copyWith works
Test #154
[📋 GROUP: TabSwitcherTheme]
(unknown) —
SUCCESS
📋 GROUP: TabSwitcherTheme 🧪 TEST: lerp with non-TabSwitcherTheme returns self
Logs:
🧪 TEST: lerp with non-TabSwitcherTheme returns self
✅ lerp(null) returns self
Test #155
[📋 GROUP: ActionModalItem]
(unknown) —
SUCCESS
📋 GROUP: ActionModalItem 🧪 TEST: constructor sets fields
Logs:
🧪 TEST: constructor sets fields
✅ Fields set correctly
Test #156
[📋 GROUP: ActionModalItem]
(unknown) —
SUCCESS
📋 GROUP: ActionModalItem 🧪 TEST: default isDestructive is false
Logs:
🧪 TEST: default isDestructive is false
✅ Default isDestructive=false
Test #157
[📋 GROUP: InfoRowLayout]
(unknown) —
SUCCESS
📋 GROUP: InfoRowLayout 🧪 TEST: has row and column values
Logs:
🧪 TEST: has row and column values
✅ Both values exist
Test #158
[📋 GROUP: PrimaryTextField]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextField 🧪 TEST: accepts text input
Logs:
🧪 TEST: accepts text input
Test #159
[📋 GROUP: PrimaryTextField]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextField 🧪 TEST: password toggle visibility
Logs:
🧪 TEST: password toggle visibility
Test #160
[📋 GROUP: TabSwitcher]
(unknown) —
SUCCESS
📋 GROUP: TabSwitcher 🧪 TEST: renders all tab labels
Logs:
🧪 TEST: renders all tab labels
✅ All three tabs rendered
Test #161
[📋 GROUP: PrimaryTextField]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextField 🧪 TEST: onChanged callback fires
Logs:
🧪 TEST: onChanged callback fires
Test #162
[📋 GROUP: TabSwitcher]
(unknown) —
SUCCESS
📋 GROUP: TabSwitcher 🧪 TEST: tap fires onChanged with correct index
Logs:
🧪 TEST: tap fires onChanged with correct index
✅ Tapped "B" → index 1
✅ Tapped "C" → index 2
Test #163
[📋 GROUP: PrimaryTextField]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextField 🧪 TEST: validator displays error
Logs:
🧪 TEST: validator displays error
Test #164
[📋 GROUP: TabSwitcher]
(unknown) —
SUCCESS
📋 GROUP: TabSwitcher 🧪 TEST: tabs with icons render icon widgets
Logs:
🧪 TEST: tabs with icons render icon widgets
✅ Icons rendered alongside text
Test #165
[📋 GROUP: PrimaryTextField]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextField 🧪 TEST: renders in dark theme
Logs:
🧪 TEST: renders in dark theme
Test #166
[📋 GROUP: OptionsRow]
(unknown) —
SUCCESS
📋 GROUP: OptionsRow 🧪 TEST: renders label and selected value
Logs:
📋 GROUP: OptionsRow
🧪 TEST: renders label and selected value
Test #167
[📋 GROUP: TabSwitcher]
(unknown) —
SUCCESS
📋 GROUP: TabSwitcher 🧪 TEST: selected index updates visual state
Logs:
🧪 TEST: selected index updates visual state
✅ Selected index changed from 0 to 1
✅ Selected index changed back to 0
Test #168
[📋 GROUP: OptionsRow]
(unknown) —
SUCCESS
📋 GROUP: OptionsRow 🧪 TEST: shows forward-arrow icon
Logs:
🧪 TEST: shows forward-arrow icon
Test #169
[📋 GROUP: TabSwitcher]
(unknown) —
SUCCESS
📋 GROUP: TabSwitcher 🧪 TEST: single tab renders without crash
Logs:
🧪 TEST: single tab renders without crash
✅ Single tab rendered
Test #170
[📋 GROUP: OptionsRow]
(unknown) —
SUCCESS
📋 GROUP: OptionsRow 🧪 TEST: renders with icon parameter
Logs:
🧪 TEST: renders with icon parameter
Test #171
[📋 GROUP: OptionsRow]
(unknown) —
SUCCESS
📋 GROUP: OptionsRow 🧪 TEST: renders in dark theme
Logs:
🧪 TEST: renders in dark theme
Test #172
[📋 GROUP: CompactOptionsRow]
(unknown) —
SUCCESS
📋 GROUP: CompactOptionsRow 🧪 TEST: renders selected value text
Logs:
📋 GROUP: CompactOptionsRow
🧪 TEST: renders selected value text
Test #173
[📋 GROUP: CompactOptionsRow]
(unknown) —
SUCCESS
📋 GROUP: CompactOptionsRow 🧪 TEST: shows forward icon
Logs:
🧪 TEST: shows forward icon
Test #174
[📋 GROUP: ParameterControlSlider]
(unknown) —
SUCCESS
📋 GROUP: ParameterControlSlider 🧪 TEST: renders label and slider
Logs:
📋 GROUP: ParameterControlSlider
🧪 TEST: renders label and slider
Test #175
[📋 GROUP: ParameterControlSlider]
(unknown) —
SUCCESS
📋 GROUP: ParameterControlSlider 🧪 TEST: displays current value
Logs:
🧪 TEST: displays current value
Test #176
[📋 GROUP: ParameterControlSlider]
(unknown) —
SUCCESS
📋 GROUP: ParameterControlSlider 🧪 TEST: shows icon when provided
Logs:
🧪 TEST: shows icon when provided
Test #177
[📋 GROUP: ParameterControlSlider]
(unknown) —
SUCCESS
📋 GROUP: ParameterControlSlider 🧪 TEST: renders in dark theme
Logs:
🧪 TEST: renders in dark theme
Test #178
[📋 GROUP: DateTimePickerField]
(unknown) —
SUCCESS
📋 GROUP: DateTimePickerField 🧪 TEST: renders hint when no value
Logs:
📋 GROUP: DateTimePickerField
🧪 TEST: renders hint when no value
Test #179
[📋 GROUP: DateTimePickerField]
(unknown) —
SUCCESS
📋 GROUP: DateTimePickerField 🧪 TEST: renders value when provided
Logs:
🧪 TEST: renders value when provided
Test #180
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/ui_components_more_test.dart
Test #181
[📋 GROUP: DateTimePickerField]
(unknown) —
SUCCESS
📋 GROUP: DateTimePickerField 🧪 TEST: fires onTap when enabled
Logs:
🧪 TEST: fires onTap when enabled
Test #182
[📋 GROUP: DateTimePickerField]
(unknown) —
SUCCESS
📋 GROUP: DateTimePickerField 🧪 TEST: disabled does not fire onTap
Logs:
🧪 TEST: disabled does not fire onTap
Test #183
[📋 GROUP: DateTimePickerField]
(unknown) —
SUCCESS
📋 GROUP: DateTimePickerField 🧪 TEST: renders in dark theme
Logs:
🧪 TEST: renders in dark theme
Test #184
[📋 GROUP: GlassModalShell]
(unknown) —
SUCCESS
📋 GROUP: GlassModalShell 🧪 TEST: renders title and child
Logs:
📋 GROUP: GlassModalShell
🧪 TEST: renders title and child
Test #185
[📋 GROUP: GlassModalShell]
(unknown) —
SUCCESS
📋 GROUP: GlassModalShell 🧪 TEST: close button dismisses modal
Logs:
🧪 TEST: close button dismisses modal
Test #186
[📋 GROUP: AnimatedBottomSheetDropdown]
(unknown) —
SUCCESS
📋 GROUP: AnimatedBottomSheetDropdown 🧪 TEST: displays selected item label
Logs:
📋 GROUP: AnimatedBottomSheetDropdown
🧪 TEST: displays selected item label
Test #187
[📋 GROUP: AnimatedBottomSheetDropdown]
(unknown) —
SUCCESS
📋 GROUP: AnimatedBottomSheetDropdown 🧪 TEST: displays hint when no value
Logs:
🧪 TEST: displays hint when no value
Test #188
[📋 GROUP: AnimatedBottomSheetDropdown]
(unknown) —
SUCCESS
📋 GROUP: AnimatedBottomSheetDropdown 🧪 TEST: shows dropdown icon
Logs:
🧪 TEST: shows dropdown icon
Test #189
[📋 GROUP: ActionModalItem]
(unknown) —
SUCCESS
📋 GROUP: ActionModalItem 🧪 TEST: stores all properties
Logs:
📋 GROUP: ActionModalItem
🧪 TEST: stores all properties
Test #190
[📋 GROUP: ActionModalItem]
(unknown) —
SUCCESS
📋 GROUP: ActionModalItem 🧪 TEST: defaults isDestructive to false
Logs:
🧪 TEST: defaults isDestructive to false
Test #191
[📋 GROUP: AppInputTheme]
(unknown) —
SUCCESS
📋 GROUP: AppInputTheme 🧪 TEST: copyWith overrides selected fields
Logs:
📋 GROUP: AppInputTheme
🧪 TEST: copyWith overrides selected fields
Test #192
[📋 GROUP: AppInputTheme]
(unknown) —
SUCCESS
📋 GROUP: AppInputTheme 🧪 TEST: lerp returns valid theme
Logs:
🧪 TEST: lerp returns valid theme
Test #193
[📋 GROUP: ParameterControlSliderTheme]
(unknown) —
SUCCESS
📋 GROUP: ParameterControlSliderTheme 🧪 TEST: copyWith preserves unchanged fields
Logs:
📋 GROUP: ParameterControlSliderTheme
🧪 TEST: copyWith preserves unchanged fields
Test #194
[📋 GROUP: ParameterControlSliderTheme]
(unknown) —
SUCCESS
📋 GROUP: ParameterControlSliderTheme 🧪 TEST: lerp interpolates
Logs:
🧪 TEST: lerp interpolates
Test #195
[📋 GROUP: TabSwitcherTheme]
(unknown) —
SUCCESS
📋 GROUP: TabSwitcherTheme 🧪 TEST: copyWith overrides fields
Logs:
📋 GROUP: TabSwitcherTheme
🧪 TEST: copyWith overrides fields
Test #196
[📋 GROUP: TabSwitcherTheme]
(unknown) —
SUCCESS
📋 GROUP: TabSwitcherTheme 🧪 TEST: lerp returns valid theme
Logs:
🧪 TEST: lerp returns valid theme
Test #197
[📋 GROUP: OptionsTheme]
(unknown) —
SUCCESS
📋 GROUP: OptionsTheme 🧪 TEST: copyWith overrides selected color
Logs:
📋 GROUP: OptionsTheme
🧪 TEST: copyWith overrides selected color
Test #198
[📋 GROUP: OptionsTheme]
(unknown) —
SUCCESS
📋 GROUP: OptionsTheme 🧪 TEST: lerp interpolates between light and dark
Logs:
🧪 TEST: lerp interpolates between light and dark
Test #199
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/navigation_widgets_extended_test.dart
Test #200
[📋 GROUP: PrimaryTextLabel]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextLabel 🧪 TEST: renders text
Logs:
📋 GROUP: PrimaryTextLabel
🧪 TEST: renders text
Test #201
[📋 GROUP: PrimaryTextLabel]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextLabel 🧪 TEST: fires onPressed
Logs:
🧪 TEST: fires onPressed
Test #202
[📋 GROUP: PrimaryTextLabel]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextLabel 🧪 TEST: isPrimary false uses secondary color
Logs:
🧪 TEST: isPrimary false uses secondary color
Test #203
[📋 GROUP: PrimaryTextLabel]
(unknown) —
SUCCESS
📋 GROUP: PrimaryTextLabel 🧪 TEST: custom fontSize
Logs:
🧪 TEST: custom fontSize
Test #204
[📋 GROUP: CustomSemiTransluscentContainer]
(unknown) —
SUCCESS
📋 GROUP: CustomSemiTransluscentContainer 🧪 TEST: renders child
Logs:
📋 GROUP: CustomSemiTransluscentContainer
🧪 TEST: renders child
Test #205
[📋 GROUP: CustomSemiTransluscentContainer]
(unknown) —
SUCCESS
📋 GROUP: CustomSemiTransluscentContainer 🧪 TEST: renders in dark theme
Logs:
🧪 TEST: renders in dark theme
Test #206
[📋 GROUP: CustomSemiTransluscentContainer]
(unknown) —
SUCCESS
📋 GROUP: CustomSemiTransluscentContainer 🧪 TEST: custom dimensions
Logs:
🧪 TEST: custom dimensions
Test #207
[📋 GROUP: DualButton]
(unknown) —
SUCCESS
📋 GROUP: DualButton 🧪 TEST: renders left and right labels
Logs:
📋 GROUP: DualButton
🧪 TEST: renders left and right labels
Test #208
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/navigation_widgets_test.dart
Test #209
[📋 GROUP: DualButton]
(unknown) —
SUCCESS
📋 GROUP: DualButton 🧪 TEST: tapping right fires onChanged(true)
Logs:
🧪 TEST: tapping right fires onChanged(true)
Test #210
[📋 GROUP: DualButton]
(unknown) —
SUCCESS
📋 GROUP: DualButton 🧪 TEST: tapping left fires onChanged(false)
Logs:
🧪 TEST: tapping left fires onChanged(false)
Test #211
[📋 GROUP: HeaderNav]
(unknown) —
SUCCESS
📋 GROUP: HeaderNav 🧪 TEST: renders title in SliverAppBar
Logs:
📋 GROUP: HeaderNav
🧪 TEST: renders title in SliverAppBar
Test #212
[📋 GROUP: DualButton]
(unknown) —
SUCCESS
📋 GROUP: DualButton 🧪 TEST: renders with icons
Logs:
🧪 TEST: renders with icons
Test #213
[📋 GROUP: HeaderNav]
(unknown) —
SUCCESS
📋 GROUP: HeaderNav 🧪 TEST: SliverAppBar is floating and snap
Logs:
🧪 TEST: SliverAppBar is floating and snap
Test #214
[📋 GROUP: DualButton]
(unknown) —
SUCCESS
📋 GROUP: DualButton 🧪 TEST: dark theme renders without error
Logs:
🧪 TEST: dark theme renders without error
Test #215
[📋 GROUP: UIDivider]
(unknown) —
SUCCESS
📋 GROUP: UIDivider 🧪 TEST: renders with default height
Logs:
📋 GROUP: UIDivider
🧪 TEST: renders with default height
Test #216
[📋 GROUP: PrimaryAppbar]
(unknown) —
SUCCESS
📋 GROUP: PrimaryAppbar 🧪 TEST: renders back arrow
Logs:
📋 GROUP: PrimaryAppbar
🧪 TEST: renders back arrow
Test #217
[📋 GROUP: PrimaryAppbar]
(unknown) —
SUCCESS
📋 GROUP: PrimaryAppbar 🧪 TEST: displays provided title
Logs:
🧪 TEST: displays provided title
Test #218
[📋 GROUP: UIDivider]
(unknown) —
SUCCESS
📋 GROUP: UIDivider 🧪 TEST: custom height
Logs:
🧪 TEST: custom height
Test #219
[📋 GROUP: PrimaryAppbar]
(unknown) —
SUCCESS
📋 GROUP: PrimaryAppbar 🧪 TEST: renders in dark theme
Logs:
🧪 TEST: renders in dark theme
Test #220
[📋 GROUP: Listtile]
(unknown) —
SUCCESS
📋 GROUP: Listtile 🧪 TEST: renders text
Logs:
📋 GROUP: Listtile
🧪 TEST: renders text
Test #221
[📋 GROUP: Listtile]
(unknown) —
SUCCESS
📋 GROUP: Listtile 🧪 TEST: fires onTap
Logs:
🧪 TEST: fires onTap
Test #222
[📋 GROUP: SemiTransluscentBackgroundContainer]
(unknown) —
SUCCESS
📋 GROUP: SemiTransluscentBackgroundContainer 🧪 TEST: renders child
Logs:
📋 GROUP: SemiTransluscentBackgroundContainer
🧪 TEST: renders child
Test #223
[📋 GROUP: Listtile]
(unknown) —
SUCCESS
📋 GROUP: Listtile 🧪 TEST: shows trailing text
Logs:
🧪 TEST: shows trailing text
Test #224
[📋 GROUP: SemiTransluscentBackgroundContainer]
(unknown) —
SUCCESS
📋 GROUP: SemiTransluscentBackgroundContainer 🧪 TEST: applies width and height
Logs:
🧪 TEST: applies width and height
Test #225
[📋 GROUP: Listtile]
(unknown) —
SUCCESS
📋 GROUP: Listtile 🧪 TEST: shows trailing icon
Logs:
🧪 TEST: shows trailing icon
Test #226
[📋 GROUP: SemiTransluscentBackgroundContainer]
(unknown) —
SUCCESS
📋 GROUP: SemiTransluscentBackgroundContainer 🧪 TEST: onTap fires
Logs:
🧪 TEST: onTap fires
Test #227
[📋 GROUP: AdaptiveCardGrid]
(unknown) —
SUCCESS
📋 GROUP: AdaptiveCardGrid 🧪 TEST: renders correct number of items
Logs:
📋 GROUP: AdaptiveCardGrid
🧪 TEST: renders correct number of items
Test #228
[📋 GROUP: AdaptiveCardGrid]
(unknown) —
SUCCESS
📋 GROUP: AdaptiveCardGrid 🧪 TEST: shouldBuildItem skips items
Logs:
🧪 TEST: shouldBuildItem skips items
Test #229
[📋 GROUP: SemiTransluscentBackgroundContainer]
(unknown) —
SUCCESS
📋 GROUP: SemiTransluscentBackgroundContainer 🧪 TEST: light vs dark have different bg opacity
Logs:
🧪 TEST: light vs dark have different bg opacity
Test #230
[📋 GROUP: buildDirectionalRoute]
(unknown) —
SUCCESS
📋 GROUP: buildDirectionalRoute 🧪 TEST: returns a Route
Logs:
📋 GROUP: buildDirectionalRoute
🧪 TEST: returns a Route
Test #231
[📋 GROUP: buildDirectionalRoute]
(unknown) —
SUCCESS
📋 GROUP: buildDirectionalRoute 🧪 TEST: slideFromRight true creates right-entering route
Logs:
🧪 TEST: slideFromRight true creates right-entering route
Test #232
[📋 GROUP: buildDirectionalRoute]
(unknown) —
SUCCESS
📋 GROUP: buildDirectionalRoute 🧪 TEST: slideFromRight false creates left-entering route
Logs:
🧪 TEST: slideFromRight false creates left-entering route
Test #233
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/ui_components_test.dart
Test #234
[📋 GROUP: HeaderNav]
(unknown) —
SUCCESS
📋 GROUP: HeaderNav 🧪 TEST: renders title text in SliverAppBar
Logs:
🧪 TEST: renders title text in SliverAppBar
✅ SliverAppBar with "Astrology Guide" rendered
Test #235
[📋 GROUP: HeaderNav]
(unknown) —
SUCCESS
📋 GROUP: HeaderNav 🧪 TEST: different title renders correctly
Logs:
🧪 TEST: different title renders correctly
✅ "Daily Forecast" title rendered
Test #236
[📋 GROUP: SemiTransluscentBackgroundContainer]
(unknown) —
SUCCESS
📋 GROUP: SemiTransluscentBackgroundContainer 🧪 TEST: renders child widget
Logs:
🧪 TEST: renders child widget
✅ Child Icon rendered
Test #237
[📋 GROUP: SemiTransluscentBackgroundContainer]
(unknown) —
SUCCESS
📋 GROUP: SemiTransluscentBackgroundContainer 🧪 TEST: fires onTap when tapped
Logs:
🧪 TEST: fires onTap when tapped
✅ onTap callback triggered
Test #238
[📋 GROUP: SemiTransluscentBackgroundContainer]
(unknown) —
SUCCESS
📋 GROUP: SemiTransluscentBackgroundContainer 🧪 TEST: respects custom dimensions
Logs:
🧪 TEST: respects custom dimensions
✅ Custom dimensions applied
Test #239
[📋 GROUP: SemiTransluscentBackgroundContainer]
(unknown) —
SUCCESS
📋 GROUP: SemiTransluscentBackgroundContainer 🧪 TEST: respects custom border radius
Logs:
🧪 TEST: respects custom border radius
✅ Custom radius applied without crash
Test #240
[📋 GROUP: SemiTransluscentBackgroundContainer]
(unknown) —
SUCCESS
📋 GROUP: SemiTransluscentBackgroundContainer 🧪 TEST: renders differently in dark and light mode
Logs:
🧪 TEST: renders differently in dark and light mode
✅ Dark mode renders correctly
✅ Light mode renders correctly
Test #241
[📋 GROUP: UIDivider]
(unknown) —
SUCCESS
📋 GROUP: UIDivider 🧪 TEST: default height is 16
Logs:
🧪 TEST: default height is 16
✅ Default height = 16
Test #242
[📋 GROUP: UIDivider]
(unknown) —
SUCCESS
📋 GROUP: UIDivider 🧪 TEST: custom height is applied
Logs:
🧪 TEST: custom height is applied
✅ Custom height = 32
Test #243
[📋 GROUP: AdaptiveCardGrid]
(unknown) —
SUCCESS
📋 GROUP: AdaptiveCardGrid 🧪 TEST: renders correct number of items
Logs:
🧪 TEST: renders correct number of items
✅ All 6 cards rendered
Test #244
[📋 GROUP: AdaptiveCardGrid]
(unknown) —
SUCCESS
📋 GROUP: AdaptiveCardGrid 🧪 TEST: shouldBuildItem skips items when false
Logs:
🧪 TEST: shouldBuildItem skips items when false
✅ Item 1 skipped, others rendered
Test #245
[📋 GROUP: AdaptiveCardGrid]
(unknown) —
SUCCESS
📋 GROUP: AdaptiveCardGrid 🧪 TEST: zero items renders empty grid
Logs:
🧪 TEST: zero items renders empty grid
✅ Empty grid renders with no cards
Test #246
[📋 GROUP: Listtile]
(unknown) —
SUCCESS
📋 GROUP: Listtile 🧪 TEST: renders text and fires onTap
Logs:
🧪 TEST: renders text and fires onTap
✅ Text rendered, onTap fired
Test #247
[📋 GROUP: Listtile]
(unknown) —
SUCCESS
📋 GROUP: Listtile 🧪 TEST: renders trailing text and icon
Logs:
🧪 TEST: renders trailing text and icon
✅ Trailing text and icon rendered
Test #248
[📋 GROUP: Listtile]
(unknown) —
SUCCESS
📋 GROUP: Listtile 🧪 TEST: no trailing elements when null
Logs:
🧪 TEST: no trailing elements when null
✅ No trailing elements when nulls
Test #249
[📋 GROUP: ReactiveLanguage]
(unknown) —
SUCCESS
📋 GROUP: ReactiveLanguage 🧪 TEST: renders builder content
Logs:
🧪 TEST: renders builder content
✅ Builder content rendered
Test #250
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/matrix_summary_card_test.dart
Test #251
[📋 GROUP: MatrixSummaryCard]
(unknown) —
SUCCESS
📋 GROUP: MatrixSummaryCard 🧪 TEST: renders category name and counts
Logs:
🧪 TEST: renders category name and counts
✅ Category name, total (8), positive (5), negative (3) shown
Test #252
[📋 GROUP: MatrixSummaryCard]
(unknown) —
SUCCESS
📋 GROUP: MatrixSummaryCard 🧪 TEST: shows View details link
Logs:
🧪 TEST: shows View details link
✅ "View details" text present
Test #253
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/ui_components_extended_test.dart
Test #254
[📋 GROUP: ButtonType enum]
(unknown) —
SUCCESS
📋 GROUP: ButtonType enum 🧪 TEST: ButtonType has 3 values
Logs:
🧪 TEST: ButtonType has 3 values
Test #255
[📋 GROUP: MatrixSummaryCard]
(unknown) —
SUCCESS
📋 GROUP: MatrixSummaryCard 🧪 TEST: onTap callback fires on card tap
Logs:
🧪 TEST: onTap callback fires on card tap
✅ onTap callback triggered
Test #256
[📋 GROUP: MatrixSummaryCard]
(unknown) —
SUCCESS
📋 GROUP: MatrixSummaryCard 🧪 TEST: zero positive hides positive bar text
Logs:
🧪 TEST: zero positive hides positive bar text
✅ Zero positive handled correctly
Test #257
[📋 GROUP: MatrixSummaryCard]
(unknown) —
SUCCESS
📋 GROUP: MatrixSummaryCard 🧪 TEST: zero negative hides negative bar text
Logs:
🧪 TEST: zero negative hides negative bar text
✅ Zero negative handled correctly
Test #258
[📋 GROUP: MatrixSummaryCard]
(unknown) —
SUCCESS
📋 GROUP: MatrixSummaryCard 🧪 TEST: both zero shows total 0
Logs:
🧪 TEST: both zero shows total 0
✅ Both zero: total badge shows 0
Test #259
[📋 GROUP: MatrixSummaryCard]
(unknown) —
SUCCESS
📋 GROUP: MatrixSummaryCard 🧪 TEST: forward arrow icon present
Logs:
🧪 TEST: forward arrow icon present
✅ Arrow forward icon rendered
Test #260
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/matrix_tab_test.dart
Test #261
[📋 GROUP: AppButton widget]
(unknown) —
SUCCESS
📋 GROUP: AppButton widget 🧪 TEST: renders with text
Logs:
🧪 TEST: renders with text
Test #262
[📋 GROUP: AppButton widget]
(unknown) —
SUCCESS
📋 GROUP: AppButton widget 🧪 TEST: calls onPressed when tapped
Logs:
🧪 TEST: calls onPressed when tapped
Test #263
[📋 GROUP: AppButton widget]
(unknown) —
SUCCESS
📋 GROUP: AppButton widget 🧪 TEST: shows loading indicator when isLoading
Logs:
🧪 TEST: shows loading indicator when isLoading
Test #264
[📋 GROUP: AppButton widget]
(unknown) —
SUCCESS
📋 GROUP: AppButton widget 🧪 TEST: disabled during loading
Logs:
🧪 TEST: disabled during loading
Test #265
[📋 GROUP: AppButton widget]
(unknown) —
SUCCESS
📋 GROUP: AppButton widget 🧪 TEST: renders with icon
Logs:
🧪 TEST: renders with icon
Test #266
[📋 GROUP: AppButton widget]
(unknown) —
SUCCESS
📋 GROUP: AppButton widget 🧪 TEST: cancel type button renders
Logs:
🧪 TEST: cancel type button renders
Test #267
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/logo_widget_test.dart
Test #268
[📋 GROUP: AppButton widget]
(unknown) —
SUCCESS
📋 GROUP: AppButton widget 🧪 TEST: edit type button renders
Logs:
🧪 TEST: edit type button renders
Test #269
[📋 GROUP: AppButton widget]
(unknown) —
SUCCESS
📋 GROUP: AppButton widget 🧪 TEST: long=false does not fill width
Logs:
🧪 TEST: long=false does not fill width
Test #270
[📋 GROUP: PrimaryButton widget]
(unknown) —
SUCCESS
📋 GROUP: PrimaryButton widget 🧪 TEST: renders primary style
Logs:
🧪 TEST: renders primary style
Test #271
[📋 GROUP: PrimaryButton widget]
(unknown) —
SUCCESS
📋 GROUP: PrimaryButton widget 🧪 TEST: renders secondary style
Logs:
🧪 TEST: renders secondary style
Test #272
[📋 GROUP: PrimaryButton widget]
(unknown) —
SUCCESS
📋 GROUP: PrimaryButton widget 🧪 TEST: shows loading state
Logs:
🧪 TEST: shows loading state
Test #273
[📋 GROUP: PrimaryButton widget]
(unknown) —
SUCCESS
📋 GROUP: PrimaryButton widget 🧪 TEST: renders with icon
Logs:
🧪 TEST: renders with icon
Test #274
[📋 GROUP: PrimaryButton widget]
(unknown) —
SUCCESS
📋 GROUP: PrimaryButton widget 🧪 TEST: fullWidth false
Logs:
🧪 TEST: fullWidth false
Test #275
[📋 GROUP: MatrixTab]
(unknown) —
ERROR
📋 GROUP: MatrixTab 🧪 TEST: renders label and icon
Test failed. See exception logs above.
The test description was: 🧪 TEST: renders label and icon
Logs:
🧪 TEST: renders label and icon
══╡ EXCEPTION CAUGHT BY WIDGETS LIBRARY ╞═══════════════════════════════════════════════════════════
The following assertion was thrown building Builder(dependencies: [_TabControllerScope]):
No Material widget found.
TabBar widgets require a Material widget ancestor within the closest LookupBoundary.
In Material Design, most widgets are conceptually "printed" on a sheet of material. In Flutter's
material library, that material is represented by the Material widget. It is the Material widget
that renders ink splashes, for instance. Because of this, many material library widgets require that
there be a Material widget in the tree above them.
To introduce a Material widget, you can either directly include one, or use a widget that contains
Material itself, such as a Card, Dialog, Drawer, or Scaffold.
The specific widget that could not find a Material ancestor was:
TabBar
The ancestors of this widget were:
...
Builder
_TabControllerScope
DefaultTabController
Semantics
Builder
...
The relevant error-causing widget was:
Builder
Builder:file:///home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/matrix_tab_test.dart:16:18
When the exception was thrown, this was the stack:
#0 debugCheckHasMaterial.
(package:flutter/src/material/debug.dart:40:7)
#1 debugCheckHasMaterial (package:flutter/src/material/debug.dart:67:4)
#2 _TabBarState.didChangeDependencies (package:flutter/src/material/tabs.dart:1615:12)
#3 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5971:11)
#4 ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
... Normal element mounting (280 frames)
#284 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
#285 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:7269:36)
#286 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7285:32)
... Normal element mounting (448 frames)
#734 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
#735 Element.updateChild (package:flutter/src/widgets/framework.dart:4053:20)
#736 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#737 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#738 ProxyElement.update (package:flutter/src/widgets/framework.dart:6152:5)
#739 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:108:11)
#740 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#741 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#742 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
#743 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#744 StatefulElement.update (package:flutter/src/widgets/framework.dart:6010:5)
#745 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#746 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#747 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#748 ProxyElement.update (package:flutter/src/widgets/framework.dart:6152:5)
#749 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:108:11)
#750 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#751 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#752 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
#753 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#754 StatefulElement.update (package:flutter/src/widgets/framework.dart:6010:5)
#755 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#756 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#757 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
#758 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#759 StatefulElement.update (package:flutter/src/widgets/framework.dart:6010:5)
#760 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#761 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#762 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#763 ProxyElement.update (package:flutter/src/widgets/framework.dart:6152:5)
#764 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#765 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#766 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
#767 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#768 StatefulElement.update (package:flutter/src/widgets/framework.dart:6010:5)
#769 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#770 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#771 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#772 ProxyElement.update (package:flutter/src/widgets/framework.dart:6152:5)
#773 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#774 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#775 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#776 ProxyElement.update (package:flutter/src/widgets/framework.dart:6152:5)
#777 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#778 _RawViewElement._updateChild (package:flutter/src/widgets/view.dart:481:16)
#779 _RawViewElement.update (package:flutter/src/widgets/view.dart:568:5)
#780 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#781 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#782 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#783 StatelessElement.update (package:flutter/src/widgets/framework.dart:5898:5)
#784 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#785 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#786 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
#787 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#788 StatefulElement.update (package:flutter/src/widgets/framework.dart:6010:5)
#789 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#790 RootElement._rebuild (package:flutter/src/widgets/binding.dart:1782:16)
#791 RootElement.update (package:flutter/src/widgets/binding.dart:1760:5)
#792 RootElement.performRebuild (package:flutter/src/widgets/binding.dart:1774:7)
#793 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#794 BuildScope._tryRebuild (package:flutter/src/widgets/framework.dart:2750:15)
#795 BuildScope._flushDirtyElements (package:flutter/src/widgets/framework.dart:2807:11)
#796 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3111:18)
#797 AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:1506:19)
#798 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:495:5)
#799 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1434:15)
#800 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1347:9)
#801 AutomatedTestWidgetsFlutterBinding.pump. (package:flutter_test/src/binding.dart:1335:9)
#804 TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:74:41)
#805 AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:1324:27)
#806 WidgetTester.pumpWidget. (package:flutter_test/src/widget_tester.dart:598:22)
#809 TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:74:41)
#810 WidgetTester.pumpWidget (package:flutter_test/src/widget_tester.dart:595:27)
#811 main.. (file:///home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/matrix_tab_test.dart:13:20)
#812 testWidgets.. (package:flutter_test/src/widget_tester.dart:192:29)
#813 TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1059:5)
(elided 5 frames from dart:async and package:stack_trace)
════════════════════════════════════════════════════════════════════════════════════════════════════
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure was thrown running a test:
Expected: exactly one matching candidate
Actual: _TextWidgetFinder:
Which: means none were found but one was expected
When the exception was thrown, this was the stack:
#4 main.. (file:///home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/matrix_tab_test.dart:43:7)
#5 testWidgets.. (package:flutter_test/src/widget_tester.dart:192:15)
#6 TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1059:5)
(elided one frame from package:stack_trace)
This was caught by the test expectation on the following line:
file:///home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/matrix_tab_test.dart line 43
The test description was:
🧪 TEST: renders label and icon
════════════════════════════════════════════════════════════════════════════════════════════════════
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following message was thrown:
Multiple exceptions (2) were detected during the running of the current test, and at least one was
unexpected.
════════════════════════════════════════════════════════════════════════════════════════════════════
Test #276
[📋 GROUP: DualButton widget]
(unknown) —
SUCCESS
📋 GROUP: DualButton widget 🧪 TEST: renders both labels
Logs:
🧪 TEST: renders both labels
Test #277
[📋 GROUP: DualButton widget]
(unknown) —
SUCCESS
📋 GROUP: DualButton widget 🧪 TEST: tapping right calls onChanged(true)
Logs:
🧪 TEST: tapping right calls onChanged(true)
Test #278
[📋 GROUP: DualButton widget]
(unknown) —
SUCCESS
📋 GROUP: DualButton widget 🧪 TEST: tapping left calls onChanged(false)
Logs:
🧪 TEST: tapping left calls onChanged(false)
Test #279
[📋 GROUP: DualButton widget]
(unknown) —
SUCCESS
📋 GROUP: DualButton widget 🧪 TEST: renders with icons
Logs:
🧪 TEST: renders with icons
Test #280
[📋 GROUP: Panel widget]
(unknown) —
SUCCESS
📋 GROUP: Panel widget 🧪 TEST: renders with title and child
Logs:
🧪 TEST: renders with title and child
Test #281
[📋 GROUP: Panel widget]
(unknown) —
SUCCESS
📋 GROUP: Panel widget 🧪 TEST: collapsible panel toggles
Logs:
🧪 TEST: collapsible panel toggles
Test #282
[📋 GROUP: LogoWidget]
(unknown) —
SUCCESS
📋 GROUP: LogoWidget 🧪 TEST: renders default logo image
Logs:
🧪 TEST: renders default logo image
✅ Default logo rendered with correct asset and dimensions
Test #283
[📋 GROUP: MatrixTab]
(unknown) —
SUCCESS
📋 GROUP: MatrixTab 🧪 TEST: highlights selected tab
Logs:
🧪 TEST: highlights selected tab
✅ Tab controller index changed on tap
Test #284
[📋 GROUP: Panel widget]
(unknown) —
SUCCESS
📋 GROUP: Panel widget 🧪 TEST: initially collapsed
Logs:
🧪 TEST: initially collapsed
Test #285
[📋 GROUP: LogoWidget]
(unknown) —
SUCCESS
📋 GROUP: LogoWidget 🧪 TEST: renders with custom dimensions
Logs:
🧪 TEST: renders with custom dimensions
✅ Logo rendered with custom width (200) and height (100)
Test #286
[📋 GROUP: Panel widget]
(unknown) —
SUCCESS
📋 GROUP: Panel widget 🧪 TEST: showHeader false hides header
Logs:
🧪 TEST: showHeader false hides header
Test #287
[📋 GROUP: Panel widget]
(unknown) —
SUCCESS
📋 GROUP: Panel widget 🧪 TEST: renders with icon
Logs:
🧪 TEST: renders with icon
Test #288
[📋 GROUP: AutoHideTabBar]
(unknown) —
SUCCESS
📋 GROUP: AutoHideTabBar 🧪 TEST: hides and shows based on controller
Logs:
🧪 TEST: hides and shows based on controller
✅ AutoHideTabBar visibility controlled by AutoHideTabBarController
Test #289
[📋 GROUP: UIDivider]
(unknown) —
SUCCESS
📋 GROUP: UIDivider 🧪 TEST: default height 16
Logs:
🧪 TEST: default height 16
Test #290
[📋 GROUP: UIDivider]
(unknown) —
SUCCESS
📋 GROUP: UIDivider 🧪 TEST: custom height
Logs:
🧪 TEST: custom height
Test #291
[📋 GROUP: LogoWidget]
(unknown) —
ERROR
📋 GROUP: LogoWidget 🧪 TEST: renders with custom image path
Test failed. See exception logs above.
The test description was: 🧪 TEST: renders with custom image path
Logs:
🧪 TEST: renders with custom image path
✅ Logo rendered with custom image path: assets/images/alt_logo.png
══╡ EXCEPTION CAUGHT BY IMAGE RESOURCE SERVICE ╞════════════════════════════════════════════════════
The following assertion was thrown resolving an image codec:
Unable to load asset: "assets/images/alt_logo.png".
The asset does not exist or has empty data.
When the exception was thrown, this was the stack:
#0 PlatformAssetBundle.load (package:flutter/src/services/asset_bundle.dart:340:7)
#1 PlatformAssetBundle.loadBuffer (package:flutter/src/services/asset_bundle.dart:367:36)
#2 AssetBundleImageProvider._loadAsync (package:flutter/src/painting/image_provider.dart:783:33)
#3 AssetBundleImageProvider.loadImage (package:flutter/src/painting/image_provider.dart:743:14)
#4 ImageProvider.resolveStreamForKey.
(package:flutter/src/painting/image_provider.dart:546:39)
#5 ImageCache.putIfAbsent (package:flutter/src/painting/image_cache.dart:368:22)
#6 ImageProvider.resolveStreamForKey (package:flutter/src/painting/image_provider.dart:543:81)
#7 ScrollAwareImageProvider.resolveStreamForKey (package:flutter/src/widgets/scroll_aware_image_provider.dart:104:19)
#8 ImageProvider.resolve. (package:flutter/src/painting/image_provider.dart:383:9)
#9 ImageProvider._createErrorHandlerAndKey. (package:flutter/src/painting/image_provider.dart:499:28)
#10 SynchronousFuture.then (package:flutter/src/foundation/synchronous_future.dart:44:27)
#11 ImageProvider._createErrorHandlerAndKey (package:flutter/src/painting/image_provider.dart:496:10)
#12 ImageProvider.resolve (package:flutter/src/painting/image_provider.dart:380:5)
#13 _ImageState._resolveImage (package:flutter/src/widgets/image.dart:1174:44)
#14 _ImageState.didChangeDependencies (package:flutter/src/widgets/image.dart:1124:5)
#15 StatefulElement._firstBuild (package:flutter/src/widgets/framework.dart:5971:11)
#16 ComponentElement.mount (package:flutter/src/widgets/framework.dart:5796:5)
... Normal element mounting (272 frames)
#288 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
#289 MultiChildRenderObjectElement.inflateWidget (package:flutter/src/widgets/framework.dart:7269:36)
#290 MultiChildRenderObjectElement.mount (package:flutter/src/widgets/framework.dart:7285:32)
... Normal element mounting (448 frames)
#738 Element.inflateWidget (package:flutter/src/widgets/framework.dart:4590:20)
#739 Element.updateChild (package:flutter/src/widgets/framework.dart:4053:20)
#740 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#741 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#742 ProxyElement.update (package:flutter/src/widgets/framework.dart:6152:5)
#743 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:108:11)
#744 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#745 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#746 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
#747 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#748 StatefulElement.update (package:flutter/src/widgets/framework.dart:6010:5)
#749 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#750 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#751 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#752 ProxyElement.update (package:flutter/src/widgets/framework.dart:6152:5)
#753 _InheritedNotifierElement.update (package:flutter/src/widgets/inherited_notifier.dart:108:11)
#754 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#755 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#756 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
#757 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#758 StatefulElement.update (package:flutter/src/widgets/framework.dart:6010:5)
#759 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#760 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#761 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
#762 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#763 StatefulElement.update (package:flutter/src/widgets/framework.dart:6010:5)
#764 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#765 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#766 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#767 ProxyElement.update (package:flutter/src/widgets/framework.dart:6152:5)
#768 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#769 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#770 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
#771 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#772 StatefulElement.update (package:flutter/src/widgets/framework.dart:6010:5)
#773 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#774 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#775 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#776 ProxyElement.update (package:flutter/src/widgets/framework.dart:6152:5)
#777 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#778 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#779 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#780 ProxyElement.update (package:flutter/src/widgets/framework.dart:6152:5)
#781 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#782 _RawViewElement._updateChild (package:flutter/src/widgets/view.dart:481:16)
#783 _RawViewElement.update (package:flutter/src/widgets/view.dart:568:5)
#784 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#785 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#786 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#787 StatelessElement.update (package:flutter/src/widgets/framework.dart:5898:5)
#788 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#789 ComponentElement.performRebuild (package:flutter/src/widgets/framework.dart:5844:16)
#790 StatefulElement.performRebuild (package:flutter/src/widgets/framework.dart:5985:11)
#791 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#792 StatefulElement.update (package:flutter/src/widgets/framework.dart:6010:5)
#793 Element.updateChild (package:flutter/src/widgets/framework.dart:4037:15)
#794 RootElement._rebuild (package:flutter/src/widgets/binding.dart:1782:16)
#795 RootElement.update (package:flutter/src/widgets/binding.dart:1760:5)
#796 RootElement.performRebuild (package:flutter/src/widgets/binding.dart:1774:7)
#797 Element.rebuild (package:flutter/src/widgets/framework.dart:5532:7)
#798 BuildScope._tryRebuild (package:flutter/src/widgets/framework.dart:2750:15)
#799 BuildScope._flushDirtyElements (package:flutter/src/widgets/framework.dart:2807:11)
#800 BuildOwner.buildScope (package:flutter/src/widgets/framework.dart:3111:18)
#801 AutomatedTestWidgetsFlutterBinding.drawFrame (package:flutter_test/src/binding.dart:1506:19)
#802 RendererBinding._handlePersistentFrameCallback (package:flutter/src/rendering/binding.dart:495:5)
#803 SchedulerBinding._invokeFrameCallback (package:flutter/src/scheduler/binding.dart:1434:15)
#804 SchedulerBinding.handleDrawFrame (package:flutter/src/scheduler/binding.dart:1347:9)
#805 AutomatedTestWidgetsFlutterBinding.pump. (package:flutter_test/src/binding.dart:1335:9)
#808 TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:74:41)
#809 AutomatedTestWidgetsFlutterBinding.pump (package:flutter_test/src/binding.dart:1324:27)
#810 WidgetTester.pumpWidget. (package:flutter_test/src/widget_tester.dart:598:22)
#813 TestAsyncUtils.guard (package:flutter_test/src/test_async_utils.dart:74:41)
#814 WidgetTester.pumpWidget (package:flutter_test/src/widget_tester.dart:595:27)
#815 main.. (file:///home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/logo_widget_test.dart:50:20)
#816 testWidgets.. (package:flutter_test/src/widget_tester.dart:192:29)
#817 TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1059:5)
(elided 5 frames from dart:async and package:stack_trace)
Image provider: AssetImage(bundle: null, name: "assets/images/alt_logo.png")
Image key: AssetBundleImageKey(bundle: PlatformAssetBundle#86fb6(), name:
"assets/images/alt_logo.png", scale: 1.0)
════════════════════════════════════════════════════════════════════════════════════════════════════
Test #292
[📋 GROUP: TabSwitch]
(unknown) —
SUCCESS
📋 GROUP: TabSwitch 🧪 TEST: renders Sign In and Register
Logs:
🧪 TEST: renders Sign In and Register
Test #293
[📋 GROUP: LogoWidget]
(unknown) —
SUCCESS
📋 GROUP: LogoWidget 🧪 TEST: renders with custom padding
Logs:
🧪 TEST: renders with custom padding
✅ Logo rendered with custom padding: EdgeInsets.all(40.0)
Test #294
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/layouts_extended_test.dart
Test #295
[📋 GROUP: TabSwitch]
(unknown) —
SUCCESS
📋 GROUP: TabSwitch 🧪 TEST: tapping Register calls onTabChange
Logs:
🧪 TEST: tapping Register calls onTabChange
Test #296
[📋 GROUP: LayoutWidths]
(unknown) —
SUCCESS
📋 GROUP: LayoutWidths 🧪 TEST: constants have expected values
Logs:
📋 GROUP: LayoutWidths
🧪 TEST: constants have expected values
Test #297
[📋 GROUP: PanelGradientTheme]
(unknown) —
SUCCESS
📋 GROUP: PanelGradientTheme 🧪 TEST: copyWith overrides
Logs:
🧪 TEST: copyWith overrides
Test #298
[📋 GROUP: PanelGradientTheme]
(unknown) —
SUCCESS
📋 GROUP: PanelGradientTheme 🧪 TEST: lerp with non-PanelGradientTheme returns this
Logs:
🧪 TEST: lerp with non-PanelGradientTheme returns this
Test #299
[📋 GROUP: PrimaryAppbarAppBarGradientTheme]
(unknown) —
SUCCESS
📋 GROUP: PrimaryAppbarAppBarGradientTheme 🧪 TEST: copyWith
Logs:
🧪 TEST: copyWith
Test #300
[📋 GROUP: PrimaryAppbarAppBarGradientTheme]
(unknown) —
SUCCESS
📋 GROUP: PrimaryAppbarAppBarGradientTheme 🧪 TEST: lerp with non-matching type returns this
Logs:
🧪 TEST: lerp with non-matching type returns this
Test #301
[📋 GROUP: AppButtonTheme]
(unknown) —
SUCCESS
📋 GROUP: AppButtonTheme 🧪 TEST: copyWith preserves defaults
Logs:
🧪 TEST: copyWith preserves defaults
Test #302
[📋 GROUP: AppButtonTheme]
(unknown) —
SUCCESS
📋 GROUP: AppButtonTheme 🧪 TEST: lerp with non-matching returns this
Logs:
🧪 TEST: lerp with non-matching returns this
Test #303
[📋 GROUP: PanelTheme]
(unknown) —
SUCCESS
📋 GROUP: PanelTheme 🧪 TEST: copyWith overrides
Logs:
🧪 TEST: copyWith overrides
Test #304
[📋 GROUP: PanelTheme]
(unknown) —
SUCCESS
📋 GROUP: PanelTheme 🧪 TEST: lerp with non-matching returns this
Logs:
🧪 TEST: lerp with non-matching returns this
Test #305
[📋 GROUP: CustomSemiTransluscentContainer]
(unknown) —
SUCCESS
📋 GROUP: CustomSemiTransluscentContainer 🧪 TEST: renders child
Logs:
🧪 TEST: renders child
Test #306
[📋 GROUP: CustomSemiTransluscentContainer]
(unknown) —
SUCCESS
📋 GROUP: CustomSemiTransluscentContainer 🧪 TEST: renders in dark theme
Logs:
🧪 TEST: renders in dark theme
Test #307
[📋 GROUP: Listtile widget]
(unknown) —
SUCCESS
📋 GROUP: Listtile widget 🧪 TEST: renders text
Logs:
🧪 TEST: renders text
Test #308
[📋 GROUP: Listtile widget]
(unknown) —
SUCCESS
📋 GROUP: Listtile widget 🧪 TEST: calls onTap when tapped
Logs:
🧪 TEST: calls onTap when tapped
Test #309
[📋 GROUP: Listtile widget]
(unknown) —
SUCCESS
📋 GROUP: Listtile widget 🧪 TEST: renders with trailing text
Logs:
🧪 TEST: renders with trailing text
Test #310
[📋 GROUP: Listtile widget]
(unknown) —
SUCCESS
📋 GROUP: Listtile widget 🧪 TEST: renders with trailing icon
Logs:
🧪 TEST: renders with trailing icon
Test #311
[📋 GROUP: AppScrollBehavior]
(unknown) —
SUCCESS
📋 GROUP: AppScrollBehavior 🧪 TEST: buildScrollbar returns child directly
Logs:
📋 GROUP: AppScrollBehavior
🧪 TEST: buildScrollbar returns child directly
Test #312
[📋 GROUP: ConstrainedContent]
(unknown) —
SUCCESS
📋 GROUP: ConstrainedContent 🧪 TEST: constrains child to maxWidth
Logs:
📋 GROUP: ConstrainedContent
🧪 TEST: constrains child to maxWidth
Test #313
[📋 GROUP: ConstrainedContent]
(unknown) —
SUCCESS
📋 GROUP: ConstrainedContent 🧪 TEST: centers child horizontally
Logs:
🧪 TEST: centers child horizontally
Test #314
[📋 GROUP: MatrixControlPanel]
(unknown) —
SUCCESS
📋 GROUP: MatrixControlPanel 🧪 TEST: renders category name
Logs:
📋 GROUP: MatrixControlPanel
🧪 TEST: renders category name
Test #315
[📋 GROUP: MatrixControlPanel]
(unknown) —
SUCCESS
📋 GROUP: MatrixControlPanel 🧪 TEST: shows dropdown arrow
Logs:
🧪 TEST: shows dropdown arrow
Test #316
[📋 GROUP: MatrixControlPanel]
(unknown) —
SUCCESS
📋 GROUP: MatrixControlPanel 🧪 TEST: onTap fires
Logs:
🧪 TEST: onTap fires
Test #317
[📋 GROUP: MatrixControlPanel]
(unknown) —
SUCCESS
📋 GROUP: MatrixControlPanel 🧪 TEST: shows trailing widget
Logs:
🧪 TEST: shows trailing widget
Test #318
[📋 GROUP: MatrixCategoryTab]
(unknown) —
SUCCESS
📋 GROUP: MatrixCategoryTab 🧪 TEST: renders category text
Logs:
📋 GROUP: MatrixCategoryTab
🧪 TEST: renders category text
Test #319
[📋 GROUP: MatrixCategoryTab]
(unknown) —
SUCCESS
📋 GROUP: MatrixCategoryTab 🧪 TEST: active tab has bold font
Logs:
🧪 TEST: active tab has bold font
Test #320
[📋 GROUP: MatrixCategoryTab]
(unknown) —
SUCCESS
📋 GROUP: MatrixCategoryTab 🧪 TEST: onTap fires
Logs:
🧪 TEST: onTap fires
Test #321
[📋 GROUP: MatrixViewToggle]
(unknown) —
SUCCESS
📋 GROUP: MatrixViewToggle 🧪 TEST: shows list icon when in grid view
Logs:
📋 GROUP: MatrixViewToggle
🧪 TEST: shows list icon when in grid view
Test #322
[📋 GROUP: MatrixViewToggle]
(unknown) —
SUCCESS
📋 GROUP: MatrixViewToggle 🧪 TEST: shows grid icon when in list view
Logs:
🧪 TEST: shows grid icon when in list view
Test #323
[📋 GROUP: MatrixViewToggle]
(unknown) —
SUCCESS
📋 GROUP: MatrixViewToggle 🧪 TEST: onToggle fires
Logs:
🧪 TEST: onToggle fires
Test #324
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/year_navigation_widget_test.dart
Test #325
[📋 GROUP: MatrixViewToggle]
(unknown) —
SUCCESS
📋 GROUP: MatrixViewToggle 🧪 TEST: tooltip text changes
Logs:
🧪 TEST: tooltip text changes
Test #326
[📋 GROUP: ResponsiveGrid]
(unknown) —
SUCCESS
📋 GROUP: ResponsiveGrid 🧪 TEST: renders all children
Logs:
📋 GROUP: ResponsiveGrid
🧪 TEST: renders all children
Test #327
[📋 GROUP: ResponsiveGrid]
(unknown) —
SUCCESS
📋 GROUP: ResponsiveGrid 🧪 TEST: uses Wrap layout
Logs:
🧪 TEST: uses Wrap layout
Test #328
[📋 GROUP: ResponsiveGrid]
(unknown) —
SUCCESS
📋 GROUP: ResponsiveGrid 🧪 TEST: renders in dark theme
Logs:
🧪 TEST: renders in dark theme
Test #329
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/matrix_pie_summary_test.dart
Test #330
(unknown) —
ERROR
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/matrix_item_card_test.dart
Failed to load "/home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/matrix_item_card_test.dart":
Compilation failed for testPath=/home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/matrix_item_card_test.dart: test/widgets/matrix_item_card_test.dart:13:10: Error: The method 'MockComponentService.getImageUrl' has fewer named arguments than those of overridden method 'ComponentService.getImageUrl'.
String getImageUrl(String path) => 'https://mock.url/$path';
^
lib/services/component_service.dart:384:10: Context: This is the overridden method ('getImageUrl').
String getImageUrl(String imagePath, {String? category, String? componentName}) {
^
test/widgets/matrix_item_card_test.dart:11:7: Error: The superclass, 'ComponentService', has no unnamed constructor that takes no arguments.
class MockComponentService extends ComponentService {
^
.
Test #331
[📋 GROUP: YearNavigationWidget]
(unknown) —
SUCCESS
📋 GROUP: YearNavigationWidget 🧪 TEST: displays month name and year
Logs:
🧪 TEST: displays month name and year
✅ Shows "June 2025"
Test #332
[📋 GROUP: YearNavigationWidget]
(unknown) —
SUCCESS
📋 GROUP: YearNavigationWidget 🧪 TEST: next month button advances month
Logs:
🧪 TEST: next month button advances month
✅ Advanced from June to July
Test #333
[📋 GROUP: YearNavigationWidget]
(unknown) —
SUCCESS
📋 GROUP: YearNavigationWidget 🧪 TEST: previous month button goes back
Logs:
🧪 TEST: previous month button goes back
✅ Went back from June to May
Test #334
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/alert_box_test.dart
Test #335
[📋 GROUP: YearNavigationWidget]
(unknown) —
SUCCESS
📋 GROUP: YearNavigationWidget 🧪 TEST: wraps December to January with year increment
Logs:
🧪 TEST: wraps December to January with year increment
✅ Wrapped Dec 2025 → Jan 2026
Test #336
[📋 GROUP: YearNavigationWidget]
(unknown) —
SUCCESS
📋 GROUP: YearNavigationWidget 🧪 TEST: wraps January to December with year decrement
Logs:
🧪 TEST: wraps January to December with year decrement
✅ Wrapped Jan 2025 → Dec 2024
Test #337
[📋 GROUP: MatrixPieChartCard]
(unknown) —
ERROR
📋 GROUP: MatrixPieChartCard 🧪 TEST: renders both pie charts
Test failed. See exception logs above.
The test description was: 🧪 TEST: renders both pie charts
Logs:
🧪 TEST: renders both pie charts
✅ Both Challenge and Opportunity pie charts rendered
══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during layout:
A RenderFlex overflowed by 208 pixels on the bottom.
The relevant error-causing widget was:
Column
Column:file:///home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/lib/widgets/matrix/matrix_pie_summary.dart:53:16
The overflowing RenderFlex has an orientation of Axis.vertical.
The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and
black striped pattern. This is usually caused by the contents being too big for the RenderFlex.
Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the
RenderFlex to fit within the available space instead of being sized to their natural size.
This is considered an error condition because it indicates that there is content that cannot be
seen. If the content is legitimately bigger than the available space, consider clipping it with a
ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex,
like a ListView.
The specific RenderFlex in question is: RenderFlex#b3c99 OVERFLOWING:
creator: Column ← Padding ← Semantics ← DefaultTextStyle ← AnimatedDefaultTextStyle ←
_InkFeatures-[GlobalKey#21e0a ink renderer] ← NotificationListener ←
CustomPaint ← _ShapeBorderPaint ← PhysicalShape ← _MaterialInterior ← Material ← ⋯
parentData: offset=Offset(24.0, 24.0) (can use size)
constraints: BoxConstraints(w=720.0, h=520.0)
size: Size(720.0, 520.0)
direction: vertical
mainAxisAlignment: start
mainAxisSize: max
crossAxisAlignment: center
verticalDirection: down
spacing: 0.0
◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤
════════════════════════════════════════════════════════════════════════════════════════════════════
Test #338
[📋 GROUP: YearNavigationWidget]
(unknown) —
SUCCESS
📋 GROUP: YearNavigationWidget 🧪 TEST: does not go below minYear
Logs:
🧪 TEST: does not go below minYear
✅ Did not go below minYear 2000
Test #339
[📋 GROUP: YearNavigationWidget]
(unknown) —
SUCCESS
📋 GROUP: YearNavigationWidget 🧪 TEST: does not exceed maxYear
Logs:
🧪 TEST: does not exceed maxYear
✅ Did not exceed maxYear 2100
Test #340
[📋 GROUP: YearNavigationWidget]
(unknown) —
SUCCESS
📋 GROUP: YearNavigationWidget 🧪 TEST: custom monthLabelBuilder is used
Logs:
🧪 TEST: custom monthLabelBuilder is used
✅ Custom label "M3 2025" rendered
Test #341
[📋 GROUP: MatrixPieChartCard]
(unknown) —
ERROR
📋 GROUP: MatrixPieChartCard 🧪 TEST: shows flavor words in pie charts
Test failed. See exception logs above.
The test description was: 🧪 TEST: shows flavor words in pie charts
Logs:
🧪 TEST: shows flavor words in pie charts
══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during layout:
A RenderFlex overflowed by 208 pixels on the bottom.
The relevant error-causing widget was:
Column
Column:file:///home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/lib/widgets/matrix/matrix_pie_summary.dart:53:16
The overflowing RenderFlex has an orientation of Axis.vertical.
The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and
black striped pattern. This is usually caused by the contents being too big for the RenderFlex.
Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the
RenderFlex to fit within the available space instead of being sized to their natural size.
This is considered an error condition because it indicates that there is content that cannot be
seen. If the content is legitimately bigger than the available space, consider clipping it with a
ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex,
like a ListView.
The specific RenderFlex in question is: RenderFlex#c932e OVERFLOWING:
creator: Column ← Padding ← Semantics ← DefaultTextStyle ← AnimatedDefaultTextStyle ←
_InkFeatures-[GlobalKey#eec18 ink renderer] ← NotificationListener
←
CustomPaint ← _ShapeBorderPaint ← PhysicalShape ← _MaterialInterior ← Material ← ⋯
parentData: offset=Offset(24.0, 24.0) (can use size)
constraints: BoxConstraints(w=720.0, h=520.0)
size: Size(720.0, 520.0)
direction: vertical
mainAxisAlignment: start
mainAxisSize: max
crossAxisAlignment: center
verticalDirection: down
spacing: 0.0
◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤
════════════════════════════════════════════════════════════════════════════════════════════════════
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following TestFailure was thrown running a test:
Expected: exactly one matching candidate
Actual: _TextWidgetFinder:
Which: means none were found but one was expected
When the exception was thrown, this was the stack:
#4 main.. (file:///home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/matrix_pie_summary_test.dart:48:7)
#5 testWidgets.. (package:flutter_test/src/widget_tester.dart:192:15)
#6 TestWidgetsFlutterBinding._runTestBody (package:flutter_test/src/binding.dart:1059:5)
(elided one frame from package:stack_trace)
This was caught by the test expectation on the following line:
file:///home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/widgets/matrix_pie_summary_test.dart line 48
The test description was:
🧪 TEST: shows flavor words in pie charts
════════════════════════════════════════════════════════════════════════════════════════════════════
══╡ EXCEPTION CAUGHT BY FLUTTER TEST FRAMEWORK ╞════════════════════════════════════════════════════
The following message was thrown:
Multiple exceptions (2) were detected during the running of the current test, and at least one was
unexpected.
════════════════════════════════════════════════════════════════════════════════════════════════════
Test #342
[📋 GROUP: MatrixPieChartCard]
(unknown) —
ERROR
📋 GROUP: MatrixPieChartCard 🧪 TEST: handles empty data
Test failed. See exception logs above.
The test description was: 🧪 TEST: handles empty data
Logs:
🧪 TEST: handles empty data
✅ Handled empty data with "No data" message
══╡ EXCEPTION CAUGHT BY RENDERING LIBRARY ╞═════════════════════════════════════════════════════════
The following assertion was thrown during layout:
A RenderFlex overflowed by 208 pixels on the bottom.
The relevant error-causing widget was:
Column
Column:file:///home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/lib/widgets/matrix/matrix_pie_summary.dart:53:16
The overflowing RenderFlex has an orientation of Axis.vertical.
The edge of the RenderFlex that is overflowing has been marked in the rendering with a yellow and
black striped pattern. This is usually caused by the contents being too big for the RenderFlex.
Consider applying a flex factor (e.g. using an Expanded widget) to force the children of the
RenderFlex to fit within the available space instead of being sized to their natural size.
This is considered an error condition because it indicates that there is content that cannot be
seen. If the content is legitimately bigger than the available space, consider clipping it with a
ClipRect widget before putting it in the flex, or using a scrollable container rather than a Flex,
like a ListView.
The specific RenderFlex in question is: RenderFlex#6457d OVERFLOWING:
creator: Column ← Padding ← Semantics ← DefaultTextStyle ← AnimatedDefaultTextStyle ←
_InkFeatures-[GlobalKey#ad23f ink renderer] ← NotificationListener ←
CustomPaint ← _ShapeBorderPaint ← PhysicalShape ← _MaterialInterior ← Material ← ⋯
parentData: offset=Offset(24.0, 24.0) (can use size)
constraints: BoxConstraints(w=720.0, h=520.0)
size: Size(720.0, 520.0)
direction: vertical
mainAxisAlignment: start
mainAxisSize: max
crossAxisAlignment: center
verticalDirection: down
spacing: 0.0
◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤◢◤
════════════════════════════════════════════════════════════════════════════════════════════════════
Test #343
[📋 GROUP: AlertBox]
(unknown) —
SUCCESS
📋 GROUP: AlertBox 🧪 TEST: showAlertWithMessage shows dialog with message
Logs:
🧪 TEST: showAlertWithMessage shows dialog with message
✅ Dialog displayed with title, message, and OK button
Test #344
[📋 GROUP: AlertBox]
(unknown) —
SUCCESS
📋 GROUP: AlertBox 🧪 TEST: OK button dismisses the dialog
Logs:
🧪 TEST: OK button dismisses the dialog
✅ Dialog dismissed after tapping OK
Test #345
[📋 GROUP: YearNavigationWidget]
(unknown) —
SUCCESS
📋 GROUP: YearNavigationWidget 🧪 TEST: center label is tappable (opens year picker)
Logs:
🧪 TEST: center label is tappable (opens year picker)
✅ Year picker dialog opened
Test #346
[📋 GROUP: AlertBox]
(unknown) —
SUCCESS
📋 GROUP: AlertBox 🧪 TEST: shows different messages for different calls
Logs:
🧪 TEST: shows different messages for different calls
✅ Different messages rendered correctly
Test #347
[📋 GROUP: YearNavigationWidget]
(unknown) —
SUCCESS
📋 GROUP: YearNavigationWidget 🧪 TEST: year picker Close button dismisses dialog
Logs:
🧪 TEST: year picker Close button dismisses dialog
✅ Dialog dismissed
Test #348
[📋 GROUP: YearNavigationWidget]
(unknown) —
SUCCESS
📋 GROUP: YearNavigationWidget 🧪 TEST: chevron buttons have correct tooltips
Logs:
🧪 TEST: chevron buttons have correct tooltips
✅ Tooltips match: "Previous month" and "Next month"
Test #349
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/birth_validation_service_test.dart
Test #350
(unknown) —
SUCCESS
(setUpAll)
Test #351
[BirthValidationService - validateBirthDate]
(unknown) —
SUCCESS
BirthValidationService - validateBirthDate accepts valid past date
Test #352
[BirthValidationService - validateBirthDate]
(unknown) —
SUCCESS
BirthValidationService - validateBirthDate rejects empty date
Test #353
[BirthValidationService - validateBirthDate]
(unknown) —
SUCCESS
BirthValidationService - validateBirthDate rejects future date
Test #354
[BirthValidationService - validateBirthDate]
(unknown) —
SUCCESS
BirthValidationService - validateBirthDate rejects date before 1900
Test #355
[BirthValidationService - validateBirthDate]
(unknown) —
SUCCESS
BirthValidationService - validateBirthDate rejects invalid format
Test #356
[BirthValidationService - validateBirthTime]
(unknown) —
SUCCESS
BirthValidationService - validateBirthTime accepts valid times
Test #357
[BirthValidationService - validateBirthTime]
(unknown) —
SUCCESS
BirthValidationService - validateBirthTime rejects empty time
Test #358
[BirthValidationService - validateBirthTime]
(unknown) —
SUCCESS
BirthValidationService - validateBirthTime rejects invalid hour
Test #359
[BirthValidationService - validateBirthTime]
(unknown) —
SUCCESS
BirthValidationService - validateBirthTime rejects invalid minute
Test #360
[BirthValidationService - validateBirthTime]
(unknown) —
SUCCESS
BirthValidationService - validateBirthTime rejects wrong format
Test #361
[BirthValidationService - isFormComplete]
(unknown) —
SUCCESS
BirthValidationService - isFormComplete complete form returns true
Test #362
[BirthValidationService - isFormComplete]
(unknown) —
SUCCESS
BirthValidationService - isFormComplete missing location returns false
Test #363
[BirthValidationService - isFormComplete]
(unknown) —
SUCCESS
BirthValidationService - isFormComplete empty town returns false
Test #364
[BirthValidationService - isFormComplete]
(unknown) —
SUCCESS
BirthValidationService - isFormComplete empty birthDate returns false
Test #365
[BirthValidationService - isFormComplete]
(unknown) —
SUCCESS
BirthValidationService - isFormComplete empty birthTime returns false
Test #366
[BirthValidationService - validateForm]
(unknown) —
SUCCESS
BirthValidationService - validateForm valid form returns true
Test #367
[BirthValidationService - validateForm]
(unknown) —
SUCCESS
BirthValidationService - validateForm empty name returns false
Test #368
[BirthValidationService - validateForm]
(unknown) —
SUCCESS
BirthValidationService - validateForm invalid date returns false
Test #369
[BirthValidationService - validateForm]
(unknown) —
SUCCESS
BirthValidationService - validateForm invalid time returns false
Test #370
(unknown) —
SUCCESS
(tearDownAll)
Test #371
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/share_deep_link_handler_test.dart
Logs:
📋 GROUP: ShareDeepLinkHandler.resolve – tarot
📋 GROUP: ShareDeepLinkHandler.resolve – chart
📋 GROUP: ShareDeepLinkHandler.resolve – component
📋 GROUP: ShareDeepLinkHandler.resolve – matrix
📋 GROUP: ShareDeepLinkHandler.resolve – edge cases
Test #372
[ShareDeepLinkHandler.resolve – tarot]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – tarot resolves tarot share link with spreadIndex
Logs:
🧪 TEST: resolves tarot share link with spreadIndex
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/tarot?spreadIndex=3&question=Will%20I%20travel
ShareDeepLinkHandler.resolve - Segments: [share, tarot]
ShareDeepLinkHandler: Share type: tarot
ShareDeepLinkHandler: Query params: {spreadIndex: 3, question: Will I travel}
ShareDeepLinkHandler: Query string: spreadIndex=3&question=Will%20I%20travel
ShareDeepLinkHandler: Resolved: https://astromatrix.app/share/tarot?spreadIndex=3&question=Will%20I%20travel → /tarot?spreadId=3&question=Will+I+travel
Test #373
[ShareDeepLinkHandler.resolve – tarot]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – tarot tarot with deck parameter is preserved
Logs:
🧪 TEST: tarot with deck parameter is preserved
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/tarot?spreadIndex=1&deck=astrotarot
ShareDeepLinkHandler.resolve - Segments: [share, tarot]
ShareDeepLinkHandler: Share type: tarot
ShareDeepLinkHandler: Query params: {spreadIndex: 1, deck: astrotarot}
ShareDeepLinkHandler: Query string: spreadIndex=1&deck=astrotarot
ShareDeepLinkHandler: Resolved: https://astromatrix.app/share/tarot?spreadIndex=1&deck=astrotarot → /tarot?spreadId=1&deck=astrotarot
Test #374
[ShareDeepLinkHandler.resolve – tarot]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – tarot returns null when tarot has no spreadIndex
Logs:
🧪 TEST: returns null when tarot has no spreadIndex
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/tarot?question=Hello
ShareDeepLinkHandler.resolve - Segments: [share, tarot]
ShareDeepLinkHandler: Share type: tarot
ShareDeepLinkHandler: Query params: {question: Hello}
ShareDeepLinkHandler: Query string: question=Hello
ShareDeepLinkHandler: Missing spreadIndex in tarot share params
ShareDeepLinkHandler: Failed to convert params for type: tarot
Test #375
[ShareDeepLinkHandler.resolve – chart]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – chart resolves chart share link with type
Logs:
🧪 TEST: resolves chart share link with type
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/chart?type=synastry&u1name=Alice
ShareDeepLinkHandler.resolve - Segments: [share, chart]
ShareDeepLinkHandler: Share type: chart
ShareDeepLinkHandler: Query params: {type: synastry, u1name: Alice}
ShareDeepLinkHandler: Query string: type=synastry&u1name=Alice
ShareDeepLinkHandler: Resolved: https://astromatrix.app/share/chart?type=synastry&u1name=Alice → /chartview?type=synastry&u1name=Alice
Test #376
[ShareDeepLinkHandler.resolve – chart]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – chart returns null when chart has no type
Logs:
🧪 TEST: returns null when chart has no type
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/chart?u1name=Bob
ShareDeepLinkHandler.resolve - Segments: [share, chart]
ShareDeepLinkHandler: Share type: chart
ShareDeepLinkHandler: Query params: {u1name: Bob}
ShareDeepLinkHandler: Query string: u1name=Bob
ShareDeepLinkHandler: Missing type in chart share params
ShareDeepLinkHandler: Failed to convert params for type: chart
Test #377
[ShareDeepLinkHandler.resolve – chart]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – chart chart passes through u2 params
Logs:
🧪 TEST: chart passes through u2 params
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/chart?type=composite&u1name=A&u2name=B
ShareDeepLinkHandler.resolve - Segments: [share, chart]
ShareDeepLinkHandler: Share type: chart
ShareDeepLinkHandler: Query params: {type: composite, u1name: A, u2name: B}
ShareDeepLinkHandler: Query string: type=composite&u1name=A&u2name=B
ShareDeepLinkHandler: Resolved: https://astromatrix.app/share/chart?type=composite&u1name=A&u2name=B → /chartview?type=composite&u1name=A&u2name=B
Test #378
[ShareDeepLinkHandler.resolve – component]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – component resolves component share link (passthrough)
Logs:
🧪 TEST: resolves component share link (passthrough)
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/component?type=planet&id=sun
ShareDeepLinkHandler.resolve - Segments: [share, component]
ShareDeepLinkHandler: Share type: component
ShareDeepLinkHandler: Query params: {type: planet, id: sun}
ShareDeepLinkHandler: Query string: type=planet&id=sun
ShareDeepLinkHandler: Resolved: https://astromatrix.app/share/component?type=planet&id=sun → /component?type=planet&id=sun
Test #379
[ShareDeepLinkHandler.resolve – matrix]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – matrix resolves matrix self share link to /facets
Logs:
🧪 TEST: resolves matrix self share link to /facets
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/matrix?type=self&u1name=Alice&u1day=15&u1month=3&u1year=1990
ShareDeepLinkHandler.resolve - Segments: [share, matrix]
ShareDeepLinkHandler: Share type: matrix
ShareDeepLinkHandler: Query params: {type: self, u1name: Alice, u1day: 15, u1month: 3, u1year: 1990}
ShareDeepLinkHandler: Query string: type=self&u1name=Alice&u1day=15&u1month=3&u1year=1990
ShareDeepLinkHandler: Resolved: https://astromatrix.app/share/matrix?type=self&u1name=Alice&u1day=15&u1month=3&u1year=1990 → /facets?type=self&u1name=Alice&u1day=15&u1month=3&u1year=1990
Test #380
[ShareDeepLinkHandler.resolve – matrix]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – matrix resolves matrix relationship share link to /relationshipfacets
Logs:
🧪 TEST: resolves matrix relationship share link to /relationshipfacets
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/matrix?type=relationship&u1name=A&u1day=1&u1month=1&u1year=2000&u2name=B
ShareDeepLinkHandler.resolve - Segments: [share, matrix]
ShareDeepLinkHandler: Share type: matrix
ShareDeepLinkHandler: Query params: {type: relationship, u1name: A, u1day: 1, u1month: 1, u1year: 2000, u2name: B}
ShareDeepLinkHandler: Query string: type=relationship&u1name=A&u1day=1&u1month=1&u1year=2000&u2name=B
ShareDeepLinkHandler: Resolved: https://astromatrix.app/share/matrix?type=relationship&u1name=A&u1day=1&u1month=1&u1year=2000&u2name=B → /relationshipfacets?type=relationship&u1name=A&u1day=1&u1month=1&u1year=2000&u2name=B
Test #381
[ShareDeepLinkHandler.resolve – matrix]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – matrix returns null when matrix is missing u1 params
Logs:
🧪 TEST: returns null when matrix is missing u1 params
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/matrix?type=self&u1name=Alice
ShareDeepLinkHandler.resolve - Segments: [share, matrix]
ShareDeepLinkHandler: Share type: matrix
ShareDeepLinkHandler: Query params: {type: self, u1name: Alice}
ShareDeepLinkHandler: Query string: type=self&u1name=Alice
ShareDeepLinkHandler: Missing u1* params in matrix share
ShareDeepLinkHandler: Failed to convert params for type: matrix
Test #382
[ShareDeepLinkHandler.resolve – edge cases]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – edge cases returns null for unknown share type
Logs:
🧪 TEST: returns null for unknown share type
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/unknown?foo=bar
ShareDeepLinkHandler.resolve - Segments: [share, unknown]
ShareDeepLinkHandler: Share type: unknown
ShareDeepLinkHandler: Query params: {foo: bar}
ShareDeepLinkHandler: Query string: foo=bar
ShareDeepLinkHandler: Unknown share type: unknown
ShareDeepLinkHandler: Failed to convert params for type: unknown
Test #383
[ShareDeepLinkHandler.resolve – edge cases]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – edge cases returns null when share is not in segments
Logs:
🧪 TEST: returns null when share is not in segments
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/other/tarot?spreadIndex=1
ShareDeepLinkHandler.resolve - Segments: [other, tarot]
ShareDeepLinkHandler: "share" not found in segments or no type after it
Test #384
[ShareDeepLinkHandler.resolve – edge cases]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – edge cases returns null when no query params
Logs:
🧪 TEST: returns null when no query params
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/tarot
ShareDeepLinkHandler.resolve - Segments: [share, tarot]
ShareDeepLinkHandler: Share type: tarot
ShareDeepLinkHandler: Query params: {}
ShareDeepLinkHandler: Query string:
ShareDeepLinkHandler: No query parameters found in share URL
ShareDeepLinkHandler: Full URI: https://astromatrix.app/share/tarot
Test #385
[ShareDeepLinkHandler.resolve – edge cases]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – edge cases handles share in middle of segments
Logs:
🧪 TEST: handles share in middle of segments
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/app/share/tarot?spreadIndex=5
ShareDeepLinkHandler.resolve - Segments: [app, share, tarot]
ShareDeepLinkHandler: Share type: tarot
ShareDeepLinkHandler: Query params: {spreadIndex: 5}
ShareDeepLinkHandler: Query string: spreadIndex=5
ShareDeepLinkHandler: Resolved: https://astromatrix.app/app/share/tarot?spreadIndex=5 → /tarot?spreadId=5
Test #386
[ShareDeepLinkHandler.resolve – edge cases]
(unknown) —
SUCCESS
ShareDeepLinkHandler.resolve – edge cases returns null when share is last segment (no type after it)
Logs:
🧪 TEST: returns null when share is last segment (no type after it)
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share
ShareDeepLinkHandler.resolve - Segments: [share]
ShareDeepLinkHandler: "share" not found in segments or no type after it
Test #387
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/utils/generic_helper_methods_test.dart
Test #388
[📋 GROUP: clean]
(unknown) —
SUCCESS
📋 GROUP: clean 🧪 TEST: removes leading non-alphanumeric
Logs:
📋 GROUP: clean
🧪 TEST: removes leading non-alphanumeric
Test #389
[📋 GROUP: clean]
(unknown) —
SUCCESS
📋 GROUP: clean 🧪 TEST: removes trailing non-alphanumeric
Logs:
🧪 TEST: removes trailing non-alphanumeric
Test #390
[📋 GROUP: clean]
(unknown) —
SUCCESS
📋 GROUP: clean 🧪 TEST: removes both ends
Logs:
🧪 TEST: removes both ends
Test #391
[📋 GROUP: clean]
(unknown) —
SUCCESS
📋 GROUP: clean 🧪 TEST: preserves inner non-alphanumeric
Logs:
🧪 TEST: preserves inner non-alphanumeric
Test #392
[📋 GROUP: clean]
(unknown) —
SUCCESS
📋 GROUP: clean 🧪 TEST: pure alphanumeric unchanged
Logs:
🧪 TEST: pure alphanumeric unchanged
Test #393
[📋 GROUP: clean]
(unknown) —
SUCCESS
📋 GROUP: clean 🧪 TEST: empty string returns empty
Logs:
🧪 TEST: empty string returns empty
Test #394
[📋 GROUP: clean]
(unknown) —
SUCCESS
📋 GROUP: clean 🧪 TEST: only special chars returns empty
Logs:
🧪 TEST: only special chars returns empty
Test #395
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/utils/tarot_card_helper_test.dart
Test #396
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: tarotCategories list
Logs:
📋 GROUP: TarotCardHelper
🧪 TEST: tarotCategories list
Test #397
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: tarotDeckStyle map
Logs:
🧪 TEST: tarotDeckStyle map
Test #398
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: backImageUrl default variant
Logs:
🧪 TEST: backImageUrl default variant
Test #399
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: backImageUrl variant 3
Logs:
🧪 TEST: backImageUrl variant 3
Test #400
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: faceImageUrl with empty image returns back
Logs:
🧪 TEST: faceImageUrl with empty image returns back
Test #401
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: faceImageUrl with full URL passes through
Logs:
🧪 TEST: faceImageUrl with full URL passes through
Test #402
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: faceImageUrl with relative path and category
Logs:
🧪 TEST: faceImageUrl with relative path and category
Test #403
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: faceImageUrl without extension adds .jpg
Logs:
🧪 TEST: faceImageUrl without extension adds .jpg
Test #404
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: faceImageUrl with subdirectory path
Logs:
🧪 TEST: faceImageUrl with subdirectory path
Test #405
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: faceImageUrl with empty deck defaults to astrotarot
Logs:
🧪 TEST: faceImageUrl with empty deck defaults to astrotarot
Test #406
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: categoryIconImageUrl
Logs:
🧪 TEST: categoryIconImageUrl
Test #407
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: getCategoryName maps correctly
Logs:
🧪 TEST: getCategoryName maps correctly
Test #408
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: getCategoryByCardName court cards
Logs:
🧪 TEST: getCategoryByCardName court cards
Test #409
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: getCategoryByCardName minor arcana
Logs:
🧪 TEST: getCategoryByCardName minor arcana
Test #410
[📋 GROUP: TarotCardHelper]
(unknown) —
SUCCESS
📋 GROUP: TarotCardHelper 🧪 TEST: getCategoryByCardName major arcana
Logs:
🧪 TEST: getCategoryByCardName major arcana
Test #411
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: codeToName has 79 entries
Logs:
📋 GROUP: TarotMaps
🧪 TEST: codeToName has 79 entries
Test #412
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: codeToName A00 is The Fool
Logs:
🧪 TEST: codeToName A00 is The Fool
Test #413
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: codeToName A78 is King of Cups
Logs:
🧪 TEST: codeToName A78 is King of Cups
Test #414
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: getNameByCode
Logs:
🧪 TEST: getNameByCode
Test #415
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: getCodeByName
Logs:
🧪 TEST: getCodeByName
Test #416
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: getCategoryByCode
Logs:
🧪 TEST: getCategoryByCode
Test #417
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: getSuitByCode
Logs:
🧪 TEST: getSuitByCode
Test #418
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: getCategoryByName
Logs:
🧪 TEST: getCategoryByName
Test #419
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: getSuitByName
Logs:
🧪 TEST: getSuitByName
Test #420
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: toRiderWaite converts names
Logs:
🧪 TEST: toRiderWaite converts names
Test #421
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: toThoth converts names
Logs:
🧪 TEST: toThoth converts names
Test #422
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: parseTarotLink extracts code
Logs:
🧪 TEST: parseTarotLink extracts code
Test #423
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: parseTarotLink returns null for no tarot
Logs:
🧪 TEST: parseTarotLink returns null for no tarot
Test #424
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: getImageUrl valid code
Logs:
🧪 TEST: getImageUrl valid code
Test #425
[📋 GROUP: TarotMaps]
(unknown) —
SUCCESS
📋 GROUP: TarotMaps 🧪 TEST: getImageUrl invalid code throws
Logs:
🧪 TEST: getImageUrl invalid code throws
Test #426
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/utils/astro_helper_test.dart
Test #427
[📋 GROUP: Reference Data Constants]
(unknown) —
SUCCESS
📋 GROUP: Reference Data Constants 🧪 TEST: signs list has 12 entries
Logs:
🧪 TEST: signs list has 12 entries
Test #428
[📋 GROUP: Reference Data Constants]
(unknown) —
SUCCESS
📋 GROUP: Reference Data Constants 🧪 TEST: elements list has 12 entries
Logs:
🧪 TEST: elements list has 12 entries
Test #429
[📋 GROUP: Reference Data Constants]
(unknown) —
SUCCESS
📋 GROUP: Reference Data Constants 🧪 TEST: modalities list has 12 entries
Logs:
🧪 TEST: modalities list has 12 entries
Test #430
[📋 GROUP: Reference Data Constants]
(unknown) —
SUCCESS
📋 GROUP: Reference Data Constants 🧪 TEST: signRulers list has 12 entries
Logs:
🧪 TEST: signRulers list has 12 entries
Test #431
[📋 GROUP: Reference Data Constants]
(unknown) —
SUCCESS
📋 GROUP: Reference Data Constants 🧪 TEST: majorPlanets list
Logs:
🧪 TEST: majorPlanets list
Test #432
[📋 GROUP: Reference Data Constants]
(unknown) —
SUCCESS
📋 GROUP: Reference Data Constants 🧪 TEST: asteroids list
Logs:
🧪 TEST: asteroids list
Test #433
[📋 GROUP: Reference Data Constants]
(unknown) —
SUCCESS
📋 GROUP: Reference Data Constants 🧪 TEST: aspects list
Logs:
🧪 TEST: aspects list
Test #434
[📋 GROUP: Reference Data Constants]
(unknown) —
SUCCESS
📋 GROUP: Reference Data Constants 🧪 TEST: prefixes list
Logs:
🧪 TEST: prefixes list
Test #435
[📋 GROUP: Reference Data Constants]
(unknown) —
SUCCESS
📋 GROUP: Reference Data Constants 🧪 TEST: houseThemes list has 12 entries
Logs:
🧪 TEST: houseThemes list has 12 entries
Test #436
[📋 GROUP: Reference Data Constants]
(unknown) —
SUCCESS
📋 GROUP: Reference Data Constants 🧪 TEST: signSymbols map has 12 entries
Logs:
🧪 TEST: signSymbols map has 12 entries
Test #437
[📋 GROUP: Reference Data Constants]
(unknown) —
SUCCESS
📋 GROUP: Reference Data Constants 🧪 TEST: planetSymbols map
Logs:
🧪 TEST: planetSymbols map
Test #438
[📋 GROUP: Reference Data Constants]
(unknown) —
SUCCESS
📋 GROUP: Reference Data Constants 🧪 TEST: allPlanets list
Logs:
🧪 TEST: allPlanets list
Test #439
[📋 GROUP: Lookup Methods]
(unknown) —
SUCCESS
📋 GROUP: Lookup Methods 🧪 TEST: getElement returns correct element
Logs:
🧪 TEST: getElement returns correct element
Test #440
[📋 GROUP: Lookup Methods]
(unknown) —
SUCCESS
📋 GROUP: Lookup Methods 🧪 TEST: getModality returns correct modality
Logs:
🧪 TEST: getModality returns correct modality
Test #441
[📋 GROUP: Lookup Methods]
(unknown) —
SUCCESS
📋 GROUP: Lookup Methods 🧪 TEST: getRuler returns correct ruler
Logs:
🧪 TEST: getRuler returns correct ruler
Test #442
[📋 GROUP: Lookup Methods]
(unknown) —
SUCCESS
📋 GROUP: Lookup Methods 🧪 TEST: getHouseRuler returns ordinal house
Logs:
🧪 TEST: getHouseRuler returns ordinal house
Test #443
[📋 GROUP: Lookup Methods]
(unknown) —
SUCCESS
📋 GROUP: Lookup Methods 🧪 TEST: getHouseTheme for valid houses
Logs:
🧪 TEST: getHouseTheme for valid houses
Test #444
[📋 GROUP: Lookup Methods]
(unknown) —
SUCCESS
📋 GROUP: Lookup Methods 🧪 TEST: getElementPhrase for signs
Logs:
🧪 TEST: getElementPhrase for signs
Test #445
[📋 GROUP: Planet Utilities]
(unknown) —
SUCCESS
📋 GROUP: Planet Utilities 🧪 TEST: getPlanetSymbol returns correct symbols
Logs:
🧪 TEST: getPlanetSymbol returns correct symbols
Test #446
[📋 GROUP: Planet Utilities]
(unknown) —
SUCCESS
📋 GROUP: Planet Utilities 🧪 TEST: getPlanetColor returns correct colors
Logs:
🧪 TEST: getPlanetColor returns correct colors
Test #447
[📋 GROUP: Planet Utilities]
(unknown) —
SUCCESS
📋 GROUP: Planet Utilities 🧪 TEST: getPlanetImagePath
Logs:
🧪 TEST: getPlanetImagePath
Test #448
[📋 GROUP: Planet Utilities]
(unknown) —
SUCCESS
📋 GROUP: Planet Utilities 🧪 TEST: isMajorPlanet
Logs:
🧪 TEST: isMajorPlanet
Test #449
[📋 GROUP: Planet Utilities]
(unknown) —
SUCCESS
📋 GROUP: Planet Utilities 🧪 TEST: isAsteroid
Logs:
🧪 TEST: isAsteroid
Test #450
[📋 GROUP: Planet Utilities]
(unknown) —
SUCCESS
📋 GROUP: Planet Utilities 🧪 TEST: getMajorPlanets returns list
Logs:
🧪 TEST: getMajorPlanets returns list
Test #451
[📋 GROUP: Planet Utilities]
(unknown) —
SUCCESS
📋 GROUP: Planet Utilities 🧪 TEST: getAsteroids returns list
Logs:
🧪 TEST: getAsteroids returns list
Test #452
[📋 GROUP: Planet Utilities]
(unknown) —
SUCCESS
📋 GROUP: Planet Utilities 🧪 TEST: getAllPlanets combines both lists
Logs:
🧪 TEST: getAllPlanets combines both lists
Test #453
[📋 GROUP: Planet Utilities]
(unknown) —
SUCCESS
📋 GROUP: Planet Utilities 🧪 TEST: getPlanetName by index
Logs:
🧪 TEST: getPlanetName by index
Test #454
[📋 GROUP: Aspect Utilities]
(unknown) —
SUCCESS
📋 GROUP: Aspect Utilities 🧪 TEST: getAspectSymbol
Logs:
🧪 TEST: getAspectSymbol
Test #455
[📋 GROUP: Aspect Utilities]
(unknown) —
SUCCESS
📋 GROUP: Aspect Utilities 🧪 TEST: getAspectColor
Logs:
🧪 TEST: getAspectColor
Test #456
[📋 GROUP: Aspect Utilities]
(unknown) —
SUCCESS
📋 GROUP: Aspect Utilities 🧪 TEST: getAspectImagePath
Logs:
🧪 TEST: getAspectImagePath
Test #457
[📋 GROUP: Aspect Utilities]
(unknown) —
SUCCESS
📋 GROUP: Aspect Utilities 🧪 TEST: getAspectAction
Logs:
🧪 TEST: getAspectAction
Test #458
[📋 GROUP: Date/Time Formatting]
(unknown) —
SUCCESS
📋 GROUP: Date/Time Formatting 🧪 TEST: formatDate
Logs:
🧪 TEST: formatDate
Test #459
[📋 GROUP: Date/Time Formatting]
(unknown) —
SUCCESS
📋 GROUP: Date/Time Formatting 🧪 TEST: formatDateShort
Logs:
🧪 TEST: formatDateShort
Test #460
[📋 GROUP: Date/Time Formatting]
(unknown) —
SUCCESS
📋 GROUP: Date/Time Formatting 🧪 TEST: formatDateWithSuffix
Logs:
🧪 TEST: formatDateWithSuffix
Test #461
[📋 GROUP: Date/Time Formatting]
(unknown) —
SUCCESS
📋 GROUP: Date/Time Formatting 🧪 TEST: formatTime
Logs:
🧪 TEST: formatTime
Test #462
[📋 GROUP: Date/Time Formatting]
(unknown) —
SUCCESS
📋 GROUP: Date/Time Formatting 🧪 TEST: formatDateRange
Logs:
🧪 TEST: formatDateRange
Test #463
[📋 GROUP: Date/Time Formatting]
(unknown) —
SUCCESS
📋 GROUP: Date/Time Formatting 🧪 TEST: formatTimeRange
Logs:
🧪 TEST: formatTimeRange
Test #464
[📋 GROUP: Date/Time Formatting]
(unknown) —
SUCCESS
📋 GROUP: Date/Time Formatting 🧪 TEST: isToday
Logs:
🧪 TEST: isToday
Test #465
[📋 GROUP: Date/Time Formatting]
(unknown) —
SUCCESS
📋 GROUP: Date/Time Formatting 🧪 TEST: parseApiDate parses valid date
Logs:
🧪 TEST: parseApiDate parses valid date
Test #466
[📋 GROUP: Date/Time Formatting]
(unknown) —
SUCCESS
📋 GROUP: Date/Time Formatting 🧪 TEST: parseApiDate handles invalid date
Logs:
🧪 TEST: parseApiDate handles invalid date
❌ AstroHelper: Error parsing date: not-a-date - FormatException: Invalid date format
not-a-date
Test #467
[📋 GROUP: Duration Formatting]
(unknown) —
SUCCESS
📋 GROUP: Duration Formatting 🧪 TEST: formatDurationDays full words
Logs:
🧪 TEST: formatDurationDays full words
Test #468
[📋 GROUP: Duration Formatting]
(unknown) —
SUCCESS
📋 GROUP: Duration Formatting 🧪 TEST: formatDurationDays abbreviated
Logs:
🧪 TEST: formatDurationDays abbreviated
Test #469
[📋 GROUP: Duration Formatting]
(unknown) —
SUCCESS
📋 GROUP: Duration Formatting 🧪 TEST: formatDuration between two dates
Logs:
🧪 TEST: formatDuration between two dates
Test #470
[📋 GROUP: Transit Status]
(unknown) —
SUCCESS
📋 GROUP: Transit Status 🧪 TEST: getTransitStatus active
Logs:
🧪 TEST: getTransitStatus active
Test #471
[📋 GROUP: Transit Status]
(unknown) —
SUCCESS
📋 GROUP: Transit Status 🧪 TEST: getTransitStatus upcoming
Logs:
🧪 TEST: getTransitStatus upcoming
Test #472
[📋 GROUP: Transit Status]
(unknown) —
SUCCESS
📋 GROUP: Transit Status 🧪 TEST: getTransitStatus past
Logs:
🧪 TEST: getTransitStatus past
Test #473
[📋 GROUP: Transit Status]
(unknown) —
SUCCESS
📋 GROUP: Transit Status 🧪 TEST: getTransitStatus unknown with nulls
Logs:
🧪 TEST: getTransitStatus unknown with nulls
Test #474
[📋 GROUP: Transit Status]
(unknown) —
SUCCESS
📋 GROUP: Transit Status 🧪 TEST: getDurationInfo for active transit
Logs:
🧪 TEST: getDurationInfo for active transit
Test #475
[📋 GROUP: Transit Status]
(unknown) —
SUCCESS
📋 GROUP: Transit Status 🧪 TEST: getDurationInfo for null dates
Logs:
🧪 TEST: getDurationInfo for null dates
Test #476
[📋 GROUP: Moon Phase Utilities]
(unknown) —
SUCCESS
📋 GROUP: Moon Phase Utilities 🧪 TEST: getMoonPhaseImagePath
Logs:
🧪 TEST: getMoonPhaseImagePath
Test #477
[📋 GROUP: Moon Phase Utilities]
(unknown) —
SUCCESS
📋 GROUP: Moon Phase Utilities 🧪 TEST: getMoonPhaseName
Logs:
🧪 TEST: getMoonPhaseName
Test #478
[📋 GROUP: Sign Utilities]
(unknown) —
SUCCESS
📋 GROUP: Sign Utilities 🧪 TEST: getSignSymbol
Logs:
🧪 TEST: getSignSymbol
Test #479
[📋 GROUP: Sign Utilities]
(unknown) —
SUCCESS
📋 GROUP: Sign Utilities 🧪 TEST: getSignTheme
Logs:
🧪 TEST: getSignTheme
Test #480
[📋 GROUP: Sign Utilities]
(unknown) —
SUCCESS
📋 GROUP: Sign Utilities 🧪 TEST: getElementColor
Logs:
🧪 TEST: getElementColor
Test #481
[📋 GROUP: Expression and Theme]
(unknown) —
SUCCESS
📋 GROUP: Expression and Theme 🧪 TEST: getExpression for planets
Logs:
🧪 TEST: getExpression for planets
Test #482
[📋 GROUP: Expression and Theme]
(unknown) —
SUCCESS
📋 GROUP: Expression and Theme 🧪 TEST: getHouseFocus
Logs:
🧪 TEST: getHouseFocus
Test #483
[📋 GROUP: Degree Formatting]
(unknown) —
SUCCESS
📋 GROUP: Degree Formatting 🧪 TEST: formatDegreesMinutes
Logs:
🧪 TEST: formatDegreesMinutes
Test #484
[📋 GROUP: Degree Formatting]
(unknown) —
SUCCESS
📋 GROUP: Degree Formatting 🧪 TEST: isValidDegree
Logs:
🧪 TEST: isValidDegree
Test #485
[📋 GROUP: Enums]
(unknown) —
SUCCESS
📋 GROUP: Enums 🧪 TEST: TransitStatus values
Logs:
🧪 TEST: TransitStatus values
Test #486
[📋 GROUP: Enums]
(unknown) —
SUCCESS
📋 GROUP: Enums 🧪 TEST: DurationInfo constructor
Logs:
🧪 TEST: DurationInfo constructor
Test #487
[📋 GROUP: Enums]
(unknown) —
SUCCESS
📋 GROUP: Enums 🧪 TEST: SymbolType values
Logs:
🧪 TEST: SymbolType values
Test #488
[📋 GROUP: VOC Helpers]
(unknown) —
SUCCESS
📋 GROUP: VOC Helpers 🧪 TEST: isHappeningNow
Logs:
🧪 TEST: isHappeningNow
Test #489
[📋 GROUP: VOC Helpers]
(unknown) —
SUCCESS
📋 GROUP: VOC Helpers 🧪 TEST: isPast
Logs:
🧪 TEST: isPast
Test #490
[📋 GROUP: VOC Helpers]
(unknown) —
SUCCESS
📋 GROUP: VOC Helpers 🧪 TEST: isFuture
Logs:
🧪 TEST: isFuture
Test #491
[📋 GROUP: Placement Formatting]
(unknown) —
SUCCESS
📋 GROUP: Placement Formatting 🧪 TEST: formatPosition
Logs:
🧪 TEST: formatPosition
Test #492
[📋 GROUP: Placement Formatting]
(unknown) —
SUCCESS
📋 GROUP: Placement Formatting 🧪 TEST: formatPositionWithSymbol
Logs:
🧪 TEST: formatPositionWithSymbol
Test #493
[📋 GROUP: Placement Formatting]
(unknown) —
SUCCESS
📋 GROUP: Placement Formatting 🧪 TEST: formatFullPlacement with house
Logs:
🧪 TEST: formatFullPlacement with house
Test #494
[📋 GROUP: Placement Formatting]
(unknown) —
SUCCESS
📋 GROUP: Placement Formatting 🧪 TEST: formatFullPlacement without house
Logs:
🧪 TEST: formatFullPlacement without house
Test #495
[📋 GROUP: computePlanetTheme]
(unknown) —
SUCCESS
📋 GROUP: computePlanetTheme 🧪 TEST: with Forecasts category
Logs:
🧪 TEST: with Forecasts category
Test #496
[📋 GROUP: computePlanetTheme]
(unknown) —
SUCCESS
📋 GROUP: computePlanetTheme 🧪 TEST: with Ascendant no house
Logs:
🧪 TEST: with Ascendant no house
Test #497
[📋 GROUP: computePlanetTheme]
(unknown) —
SUCCESS
📋 GROUP: computePlanetTheme 🧪 TEST: with Midheaven no house
Logs:
🧪 TEST: with Midheaven no house
Test #498
[📋 GROUP: computePlanetTheme]
(unknown) —
SUCCESS
📋 GROUP: computePlanetTheme 🧪 TEST: with house number
Logs:
🧪 TEST: with house number
Test #499
[📋 GROUP: Moon Ruler Phrase]
(unknown) —
SUCCESS
📋 GROUP: Moon Ruler Phrase 🧪 TEST: getMoonRulerPhrase
Logs:
🧪 TEST: getMoonRulerPhrase
Test #500
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/utils/component_image_helper_test.dart
Test #501
[📋 GROUP: ImageDisplayConfig]
(unknown) —
SUCCESS
📋 GROUP: ImageDisplayConfig 🧪 TEST: standard config values
Logs:
📋 GROUP: ImageDisplayConfig
🧪 TEST: standard config values
Test #502
[📋 GROUP: ImageDisplayConfig]
(unknown) —
SUCCESS
📋 GROUP: ImageDisplayConfig 🧪 TEST: tarot config values
Logs:
🧪 TEST: tarot config values
Test #503
[📋 GROUP: ImageDisplayConfig]
(unknown) —
SUCCESS
📋 GROUP: ImageDisplayConfig 🧪 TEST: planetIcon config values
Logs:
🧪 TEST: planetIcon config values
Test #504
[📋 GROUP: ImageDisplayConfig]
(unknown) —
SUCCESS
📋 GROUP: ImageDisplayConfig 🧪 TEST: signIcon config values
Logs:
🧪 TEST: signIcon config values
Test #505
[📋 GROUP: ImageDisplayConfig]
(unknown) —
SUCCESS
📋 GROUP: ImageDisplayConfig 🧪 TEST: custom constructor
Logs:
🧪 TEST: custom constructor
Test #506
[📋 GROUP: ImageUrlResult]
(unknown) —
SUCCESS
📋 GROUP: ImageUrlResult 🧪 TEST: stores url and config
Logs:
📋 GROUP: ImageUrlResult
🧪 TEST: stores url and config
Test #507
[📋 GROUP: ComponentImageHelper]
(unknown) —
SUCCESS
📋 GROUP: ComponentImageHelper 🧪 TEST: isTarotCategory returns true for tarot
Logs:
📋 GROUP: ComponentImageHelper
🧪 TEST: isTarotCategory returns true for tarot
Test #508
[📋 GROUP: ComponentImageHelper]
(unknown) —
SUCCESS
📋 GROUP: ComponentImageHelper 🧪 TEST: isTarotCategory returns false for non-tarot
Logs:
🧪 TEST: isTarotCategory returns false for non-tarot
Test #509
[📋 GROUP: ComponentImageHelper]
(unknown) —
SUCCESS
📋 GROUP: ComponentImageHelper 🧪 TEST: getDisplayConfig returns tarot for tarot category
Logs:
🧪 TEST: getDisplayConfig returns tarot for tarot category
🎨 Getting display config for category: Tarot
→ Using tarot config (height: 400, no border)
Test #510
[📋 GROUP: ComponentImageHelper]
(unknown) —
SUCCESS
📋 GROUP: ComponentImageHelper 🧪 TEST: getDisplayConfig returns planet for Planets
Logs:
🧪 TEST: getDisplayConfig returns planet for Planets
🎨 Getting display config for category: Planets
→ Using planet icon config
Test #511
[📋 GROUP: ComponentImageHelper]
(unknown) —
SUCCESS
📋 GROUP: ComponentImageHelper 🧪 TEST: getDisplayConfig returns sign for Signs
Logs:
🧪 TEST: getDisplayConfig returns sign for Signs
🎨 Getting display config for category: Signs
→ Using sign icon config
Test #512
[📋 GROUP: ComponentImageHelper]
(unknown) —
SUCCESS
📋 GROUP: ComponentImageHelper 🧪 TEST: getDisplayConfig returns sign for Zodiac Signs
Logs:
🧪 TEST: getDisplayConfig returns sign for Zodiac Signs
🎨 Getting display config for category: Zodiac Signs
→ Using sign icon config
Test #513
[📋 GROUP: ComponentImageHelper]
(unknown) —
SUCCESS
📋 GROUP: ComponentImageHelper 🧪 TEST: getDisplayConfig returns standard for unknown
Logs:
🧪 TEST: getDisplayConfig returns standard for unknown
🎨 Getting display config for category: Unknown
→ Using standard config (height: 200)
Test #514
[📋 GROUP: ComponentImageHelper]
(unknown) —
SUCCESS
📋 GROUP: ComponentImageHelper 🧪 TEST: getImageUrl returns empty for empty imagePath
Logs:
🧪 TEST: getImageUrl returns empty for empty imagePath
🖼️ ComponentImageHelper.getImageUrl CALLED
imagePath: ""
category: "Planets"
componentName: "null"
❌ Empty imagePath - returning empty string
Test #515
[📋 GROUP: ComponentImageHelper]
(unknown) —
SUCCESS
📋 GROUP: ComponentImageHelper 🧪 TEST: getImageUrl passthrough full URL
Logs:
🧪 TEST: getImageUrl passthrough full URL
🖼️ ComponentImageHelper.getImageUrl CALLED
imagePath: "https://example.com/img.jpg"
category: "Planets"
componentName: "null"
📦 STANDARD COMPONENT - category: Planets
🔧 _buildStandardImageUrl: path="https://example.com/img.jpg", useSuffix=false
↩️ Already full URL, returning as-is
📦 Final standard URL: https://example.com/img.jpg
Test #516
[📋 GROUP: ComponentImageHelper]
(unknown) —
SUCCESS
📋 GROUP: ComponentImageHelper 🧪 TEST: getIconUrl delegates to getImageUrl
Logs:
🧪 TEST: getIconUrl delegates to getImageUrl
🖼️ ComponentImageHelper.getIconUrl CALLED
🖼️ ComponentImageHelper.getImageUrl CALLED
imagePath: ""
category: "Planets"
componentName: "null"
❌ Empty imagePath - returning empty string
Test #517
[📋 GROUP: ComponentImageHelper]
(unknown) —
SUCCESS
📋 GROUP: ComponentImageHelper 🧪 TEST: getFullImageUrl empty returns empty
Logs:
🧪 TEST: getFullImageUrl empty returns empty
🖼️ ComponentImageHelper.getFullImageUrl CALLED
❌ Empty imagePath - returning empty string
Test #518
[📋 GROUP: ComponentImageHelper]
(unknown) —
SUCCESS
📋 GROUP: ComponentImageHelper 🧪 TEST: getImageUrlWithConfig returns result with config
Logs:
🧪 TEST: getImageUrlWithConfig returns result with config
🖼️ ComponentImageHelper.getImageUrl CALLED
imagePath: "test.jpg"
category: "Planets"
componentName: "null"
📦 STANDARD COMPONENT - category: Planets
🔧 _buildStandardImageUrl: path="test.jpg", useSuffix=false
📍 Simple path (no slash): https://astromatrix.app/images/test.jpg
📦 Final standard URL: https://astromatrix.app/images/test.jpg
🎨 Getting display config for category: Planets
→ Using planet icon config
Test #519
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/utils/astro_parser_test.dart
Test #520
[📋 GROUP: AstroParser.extractSign]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractSign 🧪 TEST: extracts sign from "Sun in Aries"
Logs:
🧪 TEST: extracts sign from "Sun in Aries"
✅ Aries
Test #521
[📋 GROUP: AstroParser.extractSign]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractSign 🧪 TEST: extracts sign from "Transit Moon in Pisces 5th House"
Logs:
🧪 TEST: extracts sign from "Transit Moon in Pisces 5th House"
✅ Pisces
Test #522
[📋 GROUP: AstroParser.extractSign]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractSign 🧪 TEST: extracts all 12 signs
Logs:
🧪 TEST: extracts all 12 signs
✅ All 12 signs extracted correctly
Test #523
[📋 GROUP: AstroParser.extractSign]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractSign 🧪 TEST: returns empty for no sign
Logs:
🧪 TEST: returns empty for no sign
✅ Empty string
Test #524
[📋 GROUP: AstroParser.extractSign]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractSign 🧪 TEST: returns empty for empty input
Logs:
🧪 TEST: returns empty for empty input
✅ Empty string
Test #525
[📋 GROUP: AstroParser.extractSign]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractSign 🧪 TEST: fallback path finds sign without "in" keyword
Logs:
🧪 TEST: fallback path finds sign without "in" keyword
✅ Aries found via fallback
Test #526
[📋 GROUP: AstroParser.extractPrefix]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPrefix 🧪 TEST: extracts Transit prefix
Logs:
🧪 TEST: extracts Transit prefix
✅ Transit
Test #527
[📋 GROUP: AstroParser.extractPrefix]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPrefix 🧪 TEST: extracts Composite prefix
Logs:
🧪 TEST: extracts Composite prefix
✅ Composite
Test #528
[📋 GROUP: AstroParser.extractPrefix]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPrefix 🧪 TEST: extracts Natal prefix
Logs:
🧪 TEST: extracts Natal prefix
✅ Natal
Test #529
[📋 GROUP: AstroParser.extractPrefix]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPrefix 🧪 TEST: extracts Synastry prefix
Logs:
🧪 TEST: extracts Synastry prefix
✅ Synastry
Test #530
[📋 GROUP: AstroParser.extractPrefix]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPrefix 🧪 TEST: extracts Progressed prefix
Logs:
🧪 TEST: extracts Progressed prefix
✅ Progressed
Test #531
[📋 GROUP: AstroParser.extractPrefix]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPrefix 🧪 TEST: extracts Solar Arc prefix
Logs:
🧪 TEST: extracts Solar Arc prefix
✅ Solar Arc
Test #532
[📋 GROUP: AstroParser.extractPrefix]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPrefix 🧪 TEST: extracts Draconic prefix
Logs:
🧪 TEST: extracts Draconic prefix
✅ Draconic
Test #533
[📋 GROUP: AstroParser.extractPrefix]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPrefix 🧪 TEST: returns empty when no prefix
Logs:
🧪 TEST: returns empty when no prefix
✅ Empty
Test #534
[📋 GROUP: AstroParser.extractPrefix]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPrefix 🧪 TEST: returns empty for empty input
Logs:
🧪 TEST: returns empty for empty input
✅ Empty
Test #535
[📋 GROUP: AstroParser.extractPlanet]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPlanet 🧪 TEST: extracts Sun from "Sun in Aries"
Logs:
🧪 TEST: extracts Sun from "Sun in Aries"
✅ Sun
Test #536
[📋 GROUP: AstroParser.extractPlanet]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPlanet 🧪 TEST: extracts Moon from "Transit Moon in Cancer"
Logs:
🧪 TEST: extracts Moon from "Transit Moon in Cancer"
✅ Moon
Test #537
[📋 GROUP: AstroParser.extractPlanet]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPlanet 🧪 TEST: extracts multi-word body "North Node"
Logs:
🧪 TEST: extracts multi-word body "North Node"
✅ North Node
Test #538
[📋 GROUP: AstroParser.extractPlanet]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPlanet 🧪 TEST: handles prefixed multi-word "Transit North Node"
Logs:
🧪 TEST: handles prefixed multi-word "Transit North Node"
✅ North Node
Test #539
[📋 GROUP: AstroParser.extractPlanet]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPlanet 🧪 TEST: extracts asteroid names
Logs:
🧪 TEST: extracts asteroid names
✅ Chiron
Test #540
[📋 GROUP: AstroParser.extractPlanet]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPlanet 🧪 TEST: returns empty for empty input
Logs:
🧪 TEST: returns empty for empty input
✅ Empty
Test #541
[📋 GROUP: AstroParser.extractPlanet]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractPlanet 🧪 TEST: returns first word for unknown body
Logs:
🧪 TEST: returns first word for unknown body
✅ "Unknown"
Test #542
[📋 GROUP: AstroParser.extractHouse]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractHouse 🧪 TEST: extracts house number from "Moon in 5th House"
Logs:
🧪 TEST: extracts house number from "Moon in 5th House"
✅ 5
Test #543
[📋 GROUP: AstroParser.extractHouse]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractHouse 🧪 TEST: extracts 1st House
Logs:
🧪 TEST: extracts 1st House
✅ 1
Test #544
[📋 GROUP: AstroParser.extractHouse]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractHouse 🧪 TEST: extracts 12th House
Logs:
🧪 TEST: extracts 12th House
✅ 12
Test #545
[📋 GROUP: AstroParser.extractHouse]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractHouse 🧪 TEST: returns empty when no house
Logs:
🧪 TEST: returns empty when no house
✅ Empty
Test #546
[📋 GROUP: AstroParser.extractHouse]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractHouse 🧪 TEST: returns empty for empty string
Logs:
🧪 TEST: returns empty for empty string
✅ Empty
Test #547
[📋 GROUP: AstroParser.extractAspect]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractAspect 🧪 TEST: extracts major aspects
Logs:
🧪 TEST: extracts major aspects
✅ All 5 major aspects
Test #548
[📋 GROUP: AstroParser.extractAspect]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractAspect 🧪 TEST: extracts minor aspects
Logs:
🧪 TEST: extracts minor aspects
✅ Minor aspects extracted
Test #549
[📋 GROUP: AstroParser.extractAspect]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractAspect 🧪 TEST: returns empty when no aspect
Logs:
🧪 TEST: returns empty when no aspect
✅ Empty
Test #550
[📋 GROUP: AstroParser.extractAspect]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractAspect 🧪 TEST: returns empty for empty string
Logs:
🧪 TEST: returns empty for empty string
✅ Empty
Test #551
[📋 GROUP: AstroParser.extractAspectPlanets]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractAspectPlanets 🧪 TEST: extracts two planets from "Sun Conjunct Moon"
Logs:
🧪 TEST: extracts two planets from "Sun Conjunct Moon"
✅ [Sun, Moon]
Test #552
[📋 GROUP: AstroParser.extractAspectPlanets]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractAspectPlanets 🧪 TEST: extracts planets from "Venus Trine Jupiter"
Logs:
🧪 TEST: extracts planets from "Venus Trine Jupiter"
✅ [Venus, Jupiter]
Test #553
[📋 GROUP: AstroParser.extractAspectPlanets]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractAspectPlanets 🧪 TEST: handles same planet twice "Moon Sextile Natal Moon"
Logs:
🧪 TEST: handles same planet twice "Moon Sextile Natal Moon"
Extracting aspect planets from: Moon Sextile Natal Moon
✅ [Moon, Moon]
Test #554
[📋 GROUP: AstroParser.extractAspectPlanets]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractAspectPlanets 🧪 TEST: returns empty list for empty string
Logs:
🧪 TEST: returns empty list for empty string
✅ Empty list
Test #555
[📋 GROUP: AstroParser.extractAspectPlanets]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.extractAspectPlanets 🧪 TEST: single planet when no aspect
Logs:
🧪 TEST: single planet when no aspect
✅ At most 1 planet: [Sun]
Test #556
[📋 GROUP: AstroParser.contains* helpers]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.contains* helpers 🧪 TEST: containsPlanet returns true for known planets
Logs:
🧪 TEST: containsPlanet returns true for known planets
✅ Correct for known and unknown
Test #557
[📋 GROUP: AstroParser.contains* helpers]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.contains* helpers 🧪 TEST: containsSign returns true for zodiac signs
Logs:
🧪 TEST: containsSign returns true for zodiac signs
✅ Correct for signs and non-signs
Test #558
[📋 GROUP: AstroParser.contains* helpers]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.contains* helpers 🧪 TEST: containsHouse returns true when House present
Logs:
🧪 TEST: containsHouse returns true when House present
✅ Correct for House and no House
Test #559
[📋 GROUP: AstroParser.restoreTransitPrefix]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.restoreTransitPrefix 🧪 TEST: returns component unchanged (prefix restoration disabled)
Logs:
🧪 TEST: returns component unchanged (prefix restoration disabled)
✅ Unchanged
Test #560
[📋 GROUP: AstroParser.restoreTransitPrefix]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.restoreTransitPrefix 🧪 TEST: returns empty for empty component
Logs:
🧪 TEST: returns empty for empty component
✅ Empty
Test #561
[📋 GROUP: AstroParser.enrichCacheItem]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.enrichCacheItem 🧪 TEST: enriches basic cache item with metadata
Logs:
🧪 TEST: enriches basic cache item with metadata
✅ Meta: planet=Sun, sign=Aries, element=Fire, modality=Cardinal
Test #562
[📋 GROUP: AstroParser.enrichCacheItem]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.enrichCacheItem 🧪 TEST: enriches item with aspect info
Logs:
🧪 TEST: enriches item with aspect info
✅ aspect=Trine, planet2=Jupiter
Test #563
[📋 GROUP: AstroParser.enrichCacheItem]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.enrichCacheItem 🧪 TEST: enriches item with house info
Logs:
🧪 TEST: enriches item with house info
✅ house=4, focus=Home & Family
Test #564
[📋 GROUP: AstroParser.enrichCacheItem]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.enrichCacheItem 🧪 TEST: enriches item with date formatting
Logs:
🧪 TEST: enriches item with date formatting
✅ beginsStr=Mar 15th, endsStr=Apr 20th
Test #565
[📋 GROUP: AstroParser.enrichCacheItem]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.enrichCacheItem 🧪 TEST: preserves original fields
Logs:
🧪 TEST: preserves original fields
✅ Original fields preserved
Test #566
[📋 GROUP: AstroParser.mapCacheItem]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.mapCacheItem 🧪 TEST: maps cache item to MatrixItem with enrichment
Logs:
🧪 TEST: maps cache item to MatrixItem with enrichment
✅ MatrixItem created with enrichment
Test #567
[📋 GROUP: AstroParser.mapCacheItem]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.mapCacheItem 🧪 TEST: applies facet mapping
Logs:
🧪 TEST: applies facet mapping
✅ Facet mapped: Career -> Path & Career
Test #568
[📋 GROUP: AstroParser.mapCacheItem]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.mapCacheItem 🧪 TEST: uses pre-enriched meta when present
Logs:
🧪 TEST: uses pre-enriched meta when present
✅ Pre-enriched meta used
Test #569
[📋 GROUP: AstroParser.mapCacheItem]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.mapCacheItem 🧪 TEST: strips Transit prefix from component
Logs:
🧪 TEST: strips Transit prefix from component
✅ Transit prefix stripped
Test #570
[📋 GROUP: AstroParser.mapForecastItem]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.mapForecastItem 🧪 TEST: maps forecast item to MatrixItem
Logs:
🧪 TEST: maps forecast item to MatrixItem
✅ Forecast mapped: component=Mars in Aries, category=Forecasts
Test #571
[📋 GROUP: AstroParser.mapForecastItem]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.mapForecastItem 🧪 TEST: sets retrograde flag for retrograde type
Logs:
🧪 TEST: sets retrograde flag for retrograde type
✅ retrograde=true
Test #572
[📋 GROUP: AstroParser.mapForecastItem]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.mapForecastItem 🧪 TEST: handles MoonPhase type
Logs:
🧪 TEST: handles MoonPhase type
✅ MoonPhase component preserved
Test #573
[📋 GROUP: AstroParser.transform*]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.transform* 🧪 TEST: transformCacheToItems processes charts data
Logs:
🧪 TEST: transformCacheToItems processes charts data
✅ 2 items transformed
Test #574
[📋 GROUP: AstroParser.transform*]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.transform* 🧪 TEST: transformCacheToItems returns empty for null charts
Logs:
🧪 TEST: transformCacheToItems returns empty for null charts
✅ Empty list
Test #575
[📋 GROUP: AstroParser.transform*]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.transform* 🧪 TEST: transformAllToItems includes forecasts
Logs:
🧪 TEST: transformAllToItems includes forecasts
✅ 2 items: 1 cache + 1 forecast
Test #576
[📋 GROUP: AstroParser.enrichChartsData]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.enrichChartsData 🧪 TEST: enriches all cache items in charts
Logs:
🧪 TEST: enriches all cache items in charts
✅ Both items enriched with meta
Test #577
[📋 GROUP: AstroParser.enrichChartsData]
(unknown) —
SUCCESS
📋 GROUP: AstroParser.enrichChartsData 🧪 TEST: handles null charts gracefully
Logs:
🧪 TEST: handles null charts gracefully
✅ No crash on null charts
Test #578
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/utils/date_utils_test.dart
Test #579
[📋 GROUP: parseTimeComprehensive]
(unknown) —
SUCCESS
📋 GROUP: parseTimeComprehensive 🧪 TEST: parses 24-hour HH:MM
Logs:
📋 GROUP: parseTimeComprehensive
🧪 TEST: parses 24-hour HH:MM
Test #580
[📋 GROUP: parseTimeComprehensive]
(unknown) —
SUCCESS
📋 GROUP: parseTimeComprehensive 🧪 TEST: parses 12-hour AM
Logs:
🧪 TEST: parses 12-hour AM
Test #581
[📋 GROUP: parseTimeComprehensive]
(unknown) —
SUCCESS
📋 GROUP: parseTimeComprehensive 🧪 TEST: parses 12-hour PM
Logs:
🧪 TEST: parses 12-hour PM
Test #582
[📋 GROUP: parseTimeComprehensive]
(unknown) —
SUCCESS
📋 GROUP: parseTimeComprehensive 🧪 TEST: 12:00 PM stays 12
Logs:
🧪 TEST: 12:00 PM stays 12
Test #583
[📋 GROUP: parseTimeComprehensive]
(unknown) —
SUCCESS
📋 GROUP: parseTimeComprehensive 🧪 TEST: 12:00 AM becomes 0
Logs:
🧪 TEST: 12:00 AM becomes 0
Test #584
[📋 GROUP: parseTimeComprehensive]
(unknown) —
SUCCESS
📋 GROUP: parseTimeComprehensive 🧪 TEST: null returns default 12:00
Logs:
🧪 TEST: null returns default 12:00
Test #585
[📋 GROUP: parseTimeComprehensive]
(unknown) —
SUCCESS
📋 GROUP: parseTimeComprehensive 🧪 TEST: empty string returns default 12:00
Logs:
🧪 TEST: empty string returns default 12:00
Test #586
[📋 GROUP: parseTimeComprehensive]
(unknown) —
SUCCESS
📋 GROUP: parseTimeComprehensive 🧪 TEST: parses HH:MM:SS format
Logs:
🧪 TEST: parses HH:MM:SS format
Test #587
[📋 GROUP: parseOffsetToMinutes]
(unknown) —
SUCCESS
📋 GROUP: parseOffsetToMinutes 🧪 TEST: parses UTC+01:00 format
Logs:
📋 GROUP: parseOffsetToMinutes
🧪 TEST: parses UTC+01:00 format
Test #588
[📋 GROUP: parseOffsetToMinutes]
(unknown) —
SUCCESS
📋 GROUP: parseOffsetToMinutes 🧪 TEST: parses UTC-05:30 format
Logs:
🧪 TEST: parses UTC-05:30 format
Test #589
[📋 GROUP: parseOffsetToMinutes]
(unknown) —
SUCCESS
📋 GROUP: parseOffsetToMinutes 🧪 TEST: small number treated as hours
Logs:
🧪 TEST: small number treated as hours
Test #590
[📋 GROUP: parseOffsetToMinutes]
(unknown) —
SUCCESS
📋 GROUP: parseOffsetToMinutes 🧪 TEST: large number treated as minutes
Logs:
🧪 TEST: large number treated as minutes
Test #591
[📋 GROUP: parseOffsetToMinutes]
(unknown) —
SUCCESS
📋 GROUP: parseOffsetToMinutes 🧪 TEST: empty returns 0
Logs:
🧪 TEST: empty returns 0
Test #592
[📋 GROUP: parseOffsetToMinutes]
(unknown) —
SUCCESS
📋 GROUP: parseOffsetToMinutes 🧪 TEST: negative minutes
Logs:
🧪 TEST: negative minutes
Test #593
[📋 GROUP: format12Hour]
(unknown) —
SUCCESS
📋 GROUP: format12Hour 🧪 TEST: 0 returns 12
Logs:
📋 GROUP: format12Hour
🧪 TEST: 0 returns 12
Test #594
[📋 GROUP: format12Hour]
(unknown) —
SUCCESS
📋 GROUP: format12Hour 🧪 TEST: 13 returns 1
Logs:
🧪 TEST: 13 returns 1
Test #595
[📋 GROUP: format12Hour]
(unknown) —
SUCCESS
📋 GROUP: format12Hour 🧪 TEST: 12 returns 12
Logs:
🧪 TEST: 12 returns 12
Test #596
[📋 GROUP: format12Hour]
(unknown) —
SUCCESS
📋 GROUP: format12Hour 🧪 TEST: 6 returns 6
Logs:
🧪 TEST: 6 returns 6
Test #597
[📋 GROUP: isPM / getAmPm]
(unknown) —
SUCCESS
📋 GROUP: isPM / getAmPm 🧪 TEST: 11 is AM
Logs:
📋 GROUP: isPM / getAmPm
🧪 TEST: 11 is AM
Test #598
[📋 GROUP: isPM / getAmPm]
(unknown) —
SUCCESS
📋 GROUP: isPM / getAmPm 🧪 TEST: 12 is PM
Logs:
🧪 TEST: 12 is PM
Test #599
[📋 GROUP: isPM / getAmPm]
(unknown) —
SUCCESS
📋 GROUP: isPM / getAmPm 🧪 TEST: 23 is PM
Logs:
🧪 TEST: 23 is PM
Test #600
[📋 GROUP: parseDate]
(unknown) —
SUCCESS
📋 GROUP: parseDate 🧪 TEST: valid YYYY-MM-DD
Logs:
📋 GROUP: parseDate
🧪 TEST: valid YYYY-MM-DD
Test #601
[📋 GROUP: parseDate]
(unknown) —
SUCCESS
📋 GROUP: parseDate 🧪 TEST: null returns null
Logs:
🧪 TEST: null returns null
Test #602
[📋 GROUP: parseDate]
(unknown) —
SUCCESS
📋 GROUP: parseDate 🧪 TEST: empty returns null
Logs:
🧪 TEST: empty returns null
Test #603
[📋 GROUP: parseDate]
(unknown) —
SUCCESS
📋 GROUP: parseDate 🧪 TEST: invalid format returns null
Logs:
🧪 TEST: invalid format returns null
Test #604
[📋 GROUP: parseTime]
(unknown) —
SUCCESS
📋 GROUP: parseTime 🧪 TEST: valid HH:MM
Logs:
📋 GROUP: parseTime
🧪 TEST: valid HH:MM
Test #605
[📋 GROUP: parseTime]
(unknown) —
SUCCESS
📋 GROUP: parseTime 🧪 TEST: null returns null
Logs:
🧪 TEST: null returns null
Test #606
[📋 GROUP: parseTime]
(unknown) —
SUCCESS
📋 GROUP: parseTime 🧪 TEST: single part returns null
Logs:
🧪 TEST: single part returns null
Test #607
[📋 GROUP: formatDate]
(unknown) —
SUCCESS
📋 GROUP: formatDate 🧪 TEST: formats as MM/DD/YYYY
Logs:
📋 GROUP: formatDate
🧪 TEST: formats as MM/DD/YYYY
Test #608
[📋 GROUP: formatDateDDMMYYYY]
(unknown) —
SUCCESS
📋 GROUP: formatDateDDMMYYYY 🧪 TEST: formats as DD/MM/YYYY
Logs:
📋 GROUP: formatDateDDMMYYYY
🧪 TEST: formats as DD/MM/YYYY
Test #609
[📋 GROUP: formatTime12Hour]
(unknown) —
SUCCESS
📋 GROUP: formatTime12Hour 🧪 TEST: afternoon time
Logs:
📋 GROUP: formatTime12Hour
🧪 TEST: afternoon time
Test #610
[📋 GROUP: formatTime12Hour]
(unknown) —
SUCCESS
📋 GROUP: formatTime12Hour 🧪 TEST: midnight
Logs:
🧪 TEST: midnight
Test #611
[📋 GROUP: formatTime12Hour]
(unknown) —
SUCCESS
📋 GROUP: formatTime12Hour 🧪 TEST: noon
Logs:
🧪 TEST: noon
Test #612
[📋 GROUP: formatTime12HourWithPeriod]
(unknown) —
SUCCESS
📋 GROUP: formatTime12HourWithPeriod 🧪 TEST: same as formatTime12Hour
Logs:
📋 GROUP: formatTime12HourWithPeriod
🧪 TEST: same as formatTime12Hour
Test #613
[📋 GROUP: formatMonthYear]
(unknown) —
SUCCESS
📋 GROUP: formatMonthYear 🧪 TEST: formats correctly
Logs:
📋 GROUP: formatMonthYear
🧪 TEST: formats correctly
Test #614
[📋 GROUP: toDateTime]
(unknown) —
SUCCESS
📋 GROUP: toDateTime 🧪 TEST: combines date and time
Logs:
📋 GROUP: toDateTime
🧪 TEST: combines date and time
Test #615
[📋 GROUP: toDateTime]
(unknown) —
SUCCESS
📋 GROUP: toDateTime 🧪 TEST: null date returns null
Logs:
🧪 TEST: null date returns null
Test #616
[📋 GROUP: toDateTime]
(unknown) —
SUCCESS
📋 GROUP: toDateTime 🧪 TEST: null time returns null
Logs:
🧪 TEST: null time returns null
Test #617
[📋 GROUP: formatDateWithSuffix]
(unknown) —
SUCCESS
📋 GROUP: formatDateWithSuffix 🧪 TEST: 1st suffix
Logs:
📋 GROUP: formatDateWithSuffix
🧪 TEST: 1st suffix
Test #618
[📋 GROUP: formatDateWithSuffix]
(unknown) —
SUCCESS
📋 GROUP: formatDateWithSuffix 🧪 TEST: 2nd suffix
Logs:
🧪 TEST: 2nd suffix
Test #619
[📋 GROUP: formatDateWithSuffix]
(unknown) —
SUCCESS
📋 GROUP: formatDateWithSuffix 🧪 TEST: 3rd suffix
Logs:
🧪 TEST: 3rd suffix
Test #620
[📋 GROUP: formatDateWithSuffix]
(unknown) —
SUCCESS
📋 GROUP: formatDateWithSuffix 🧪 TEST: 11th suffix (special)
Logs:
🧪 TEST: 11th suffix (special)
Test #621
[📋 GROUP: formatDateWithSuffix]
(unknown) —
SUCCESS
📋 GROUP: formatDateWithSuffix 🧪 TEST: 12th suffix (special)
Logs:
🧪 TEST: 12th suffix (special)
Test #622
[📋 GROUP: formatDateWithSuffix]
(unknown) —
SUCCESS
📋 GROUP: formatDateWithSuffix 🧪 TEST: 13th suffix (special)
Logs:
🧪 TEST: 13th suffix (special)
Test #623
[📋 GROUP: formatDateWithSuffix]
(unknown) —
SUCCESS
📋 GROUP: formatDateWithSuffix 🧪 TEST: 21st suffix
Logs:
🧪 TEST: 21st suffix
Test #624
[📋 GROUP: formatTimeIfPresent]
(unknown) —
SUCCESS
📋 GROUP: formatTimeIfPresent 🧪 TEST: null returns null
Logs:
📋 GROUP: formatTimeIfPresent
🧪 TEST: null returns null
Test #625
[📋 GROUP: formatTimeIfPresent]
(unknown) —
SUCCESS
📋 GROUP: formatTimeIfPresent 🧪 TEST: midnight returns null
Logs:
🧪 TEST: midnight returns null
Test #626
[📋 GROUP: formatTimeIfPresent]
(unknown) —
SUCCESS
📋 GROUP: formatTimeIfPresent 🧪 TEST: afternoon returns formatted string
Logs:
🧪 TEST: afternoon returns formatted string
Test #627
[📋 GROUP: parseFlexibleDate]
(unknown) —
SUCCESS
📋 GROUP: parseFlexibleDate 🧪 TEST: DateTime passes through
Logs:
📋 GROUP: parseFlexibleDate
🧪 TEST: DateTime passes through
Test #628
[📋 GROUP: parseFlexibleDate]
(unknown) —
SUCCESS
📋 GROUP: parseFlexibleDate 🧪 TEST: String parses
Logs:
🧪 TEST: String parses
Test #629
[📋 GROUP: parseFlexibleDate]
(unknown) —
SUCCESS
📋 GROUP: parseFlexibleDate 🧪 TEST: null returns null
Logs:
🧪 TEST: null returns null
Test #630
[📋 GROUP: parseFlexibleDate]
(unknown) —
SUCCESS
📋 GROUP: parseFlexibleDate 🧪 TEST: invalid string returns null
Logs:
🧪 TEST: invalid string returns null
Test #631
[📋 GROUP: parseFlexibleDate]
(unknown) —
SUCCESS
📋 GROUP: parseFlexibleDate 🧪 TEST: int returns null
Logs:
🧪 TEST: int returns null
Test #632
[📋 GROUP: API date/time formatting]
(unknown) —
SUCCESS
📋 GROUP: API date/time formatting 🧪 TEST: formatDateForApi
Logs:
📋 GROUP: API date/time formatting
🧪 TEST: formatDateForApi
Test #633
[📋 GROUP: API date/time formatting]
(unknown) —
SUCCESS
📋 GROUP: API date/time formatting 🧪 TEST: formatTimeForApi
Logs:
🧪 TEST: formatTimeForApi
Test #634
[📋 GROUP: API date/time formatting]
(unknown) —
SUCCESS
📋 GROUP: API date/time formatting 🧪 TEST: parseDateFromApi valid
Logs:
🧪 TEST: parseDateFromApi valid
Test #635
[📋 GROUP: API date/time formatting]
(unknown) —
SUCCESS
📋 GROUP: API date/time formatting 🧪 TEST: parseDateFromApi null
Logs:
🧪 TEST: parseDateFromApi null
Test #636
[📋 GROUP: API date/time formatting]
(unknown) —
SUCCESS
📋 GROUP: API date/time formatting 🧪 TEST: parseDateFromApi invalid
Logs:
🧪 TEST: parseDateFromApi invalid
Test #637
[📋 GROUP: API date/time formatting]
(unknown) —
SUCCESS
📋 GROUP: API date/time formatting 🧪 TEST: combineDateTime
Logs:
🧪 TEST: combineDateTime
Test #638
[📋 GROUP: API date/time formatting]
(unknown) —
SUCCESS
📋 GROUP: API date/time formatting 🧪 TEST: formatDateTimeForApi
Logs:
🧪 TEST: formatDateTimeForApi
Test #639
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: getTimeOffset with value
Logs:
📋 GROUP: Timezone operations
🧪 TEST: getTimeOffset with value
Test #640
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: getTimeOffset null uses default
Logs:
🧪 TEST: getTimeOffset null uses default
Test #641
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: parseOffset decimal
Logs:
🧪 TEST: parseOffset decimal
Test #642
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: parseOffset colon format
Logs:
🧪 TEST: parseOffset colon format
Test #643
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: parseOffset negative
Logs:
🧪 TEST: parseOffset negative
Test #644
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: parseOffset invalid
Logs:
🧪 TEST: parseOffset invalid
Test #645
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: formatOffset positive
Logs:
🧪 TEST: formatOffset positive
Test #646
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: formatOffset negative
Logs:
🧪 TEST: formatOffset negative
Test #647
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: offsetToComponents
Logs:
🧪 TEST: offsetToComponents
Test #648
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: offsetToComponents negative
Logs:
🧪 TEST: offsetToComponents negative
Test #649
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: formatGMT
Logs:
🧪 TEST: formatGMT
Test #650
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: formatGMT negative
Logs:
🧪 TEST: formatGMT negative
Test #651
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: isDSTActive returns false
Logs:
🧪 TEST: isDSTActive returns false
Test #652
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: applyDST adds hour when true
Logs:
🧪 TEST: applyDST adds hour when true
Test #653
[📋 GROUP: Timezone operations]
(unknown) —
SUCCESS
📋 GROUP: Timezone operations 🧪 TEST: applyDST no change when false
Logs:
🧪 TEST: applyDST no change when false
Test #654
[📋 GROUP: getOrdinal]
(unknown) —
SUCCESS
📋 GROUP: getOrdinal 🧪 TEST: 1st, 2nd, 3rd
Logs:
📋 GROUP: getOrdinal
🧪 TEST: 1st, 2nd, 3rd
Test #655
[📋 GROUP: getOrdinal]
(unknown) —
SUCCESS
📋 GROUP: getOrdinal 🧪 TEST: 4th to 10th
Logs:
🧪 TEST: 4th to 10th
Test #656
[📋 GROUP: getOrdinal]
(unknown) —
SUCCESS
📋 GROUP: getOrdinal 🧪 TEST: 11th, 12th, 13th special cases
Logs:
🧪 TEST: 11th, 12th, 13th special cases
Test #657
[📋 GROUP: getOrdinal]
(unknown) —
SUCCESS
📋 GROUP: getOrdinal 🧪 TEST: 21st, 22nd, 23rd
Logs:
🧪 TEST: 21st, 22nd, 23rd
Test #658
[📋 GROUP: getOrdinal]
(unknown) —
SUCCESS
📋 GROUP: getOrdinal 🧪 TEST: getOrdinalSuffix
Logs:
🧪 TEST: getOrdinalSuffix
Test #659
[📋 GROUP: MonthConstants]
(unknown) —
SUCCESS
📋 GROUP: MonthConstants 🧪 TEST: 12 month names
Logs:
📋 GROUP: MonthConstants
🧪 TEST: 12 month names
Test #660
[📋 GROUP: MonthConstants]
(unknown) —
SUCCESS
📋 GROUP: MonthConstants 🧪 TEST: getMonthName valid
Logs:
🧪 TEST: getMonthName valid
Test #661
[📋 GROUP: MonthConstants]
(unknown) —
SUCCESS
📋 GROUP: MonthConstants 🧪 TEST: getMonthName invalid throws
Logs:
🧪 TEST: getMonthName invalid throws
Test #662
[📋 GROUP: MonthConstants]
(unknown) —
SUCCESS
📋 GROUP: MonthConstants 🧪 TEST: getMonthNumber valid
Logs:
🧪 TEST: getMonthNumber valid
Test #663
[📋 GROUP: MonthConstants]
(unknown) —
SUCCESS
📋 GROUP: MonthConstants 🧪 TEST: getMonthNumber invalid throws
Logs:
🧪 TEST: getMonthNumber invalid throws
Test #664
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/utils/component_deep_link_handler_test.dart
Test #665
[📋 GROUP: Data classes]
(unknown) —
SUCCESS
📋 GROUP: Data classes 🧪 TEST: DateTimeComponents stores all fields
Logs:
📋 GROUP: Data classes
🧪 TEST: DateTimeComponents stores all fields
Test #666
[📋 GROUP: Data classes]
(unknown) —
SUCCESS
📋 GROUP: Data classes 🧪 TEST: TimeComponents stores fields
Logs:
🧪 TEST: TimeComponents stores fields
Test #667
[📋 GROUP: Data classes]
(unknown) —
SUCCESS
📋 GROUP: Data classes 🧪 TEST: OffsetComponents stores fields
Logs:
🧪 TEST: OffsetComponents stores fields
Test #668
[📋 GROUP: ComponentDeepLinkHandler resolve]
(unknown) —
SUCCESS
📋 GROUP: ComponentDeepLinkHandler resolve 🧪 TEST: resolve with valid type and id
Logs:
🧪 TEST: resolve with valid type and id
Test #669
[📋 GROUP: ComponentDeepLinkHandler resolve]
(unknown) —
SUCCESS
📋 GROUP: ComponentDeepLinkHandler resolve 🧪 TEST: resolve with only type (no id)
Logs:
🧪 TEST: resolve with only type (no id)
Test #670
[📋 GROUP: ComponentDeepLinkHandler resolve]
(unknown) —
SUCCESS
📋 GROUP: ComponentDeepLinkHandler resolve 🧪 TEST: resolve with insufficient segments returns null
Logs:
🧪 TEST: resolve with insufficient segments returns null
Component deep link requires at least 2 segments
Test #671
[📋 GROUP: ComponentDeepLinkHandler resolve]
(unknown) —
SUCCESS
📋 GROUP: ComponentDeepLinkHandler resolve 🧪 TEST: resolve preserves existing query params
Logs:
🧪 TEST: resolve preserves existing query params
Test #672
[📋 GROUP: ComponentDeepLinkHandler resolve]
(unknown) —
SUCCESS
📋 GROUP: ComponentDeepLinkHandler resolve 🧪 TEST: resolve lowercases component type
Logs:
🧪 TEST: resolve lowercases component type
Test #673
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/coverage_boost5_test.dart
Test #674
[ChartRenderConfig]
(unknown) —
SUCCESS
ChartRenderConfig default values
Test #675
[ChartRenderConfig]
(unknown) —
SUCCESS
ChartRenderConfig custom values
Test #676
[ChartRenderConfig]
(unknown) —
SUCCESS
ChartRenderConfig toDrawChartArgs returns correct array
Test #677
[ChartTheme]
(unknown) —
SUCCESS
ChartTheme default values
Test #678
[ChartTheme]
(unknown) —
SUCCESS
ChartTheme toJson returns horoscopePanel for light
Test #679
[ChartTheme]
(unknown) —
SUCCESS
ChartTheme toJson returns horoscopePanel for dark
Test #680
[ChartTheme]
(unknown) —
SUCCESS
ChartTheme horoscope getter light classic
Test #681
[ChartTheme]
(unknown) —
SUCCESS
ChartTheme horoscope getter light modern/horoscope
Test #682
[ChartTheme]
(unknown) —
SUCCESS
ChartTheme horoscope getter dark always returns panel-horoscope-dark
Test #683
[ChartTheme]
(unknown) —
SUCCESS
ChartTheme fromBrightness dark
Test #684
[ChartTheme]
(unknown) —
SUCCESS
ChartTheme fromBrightness light
Test #685
[ChartTheme]
(unknown) —
SUCCESS
ChartTheme fromPanel dark theme
Test #686
[ChartTheme]
(unknown) —
SUCCESS
ChartTheme fromPanel dark with dark in name
Test #687
[ChartTheme]
(unknown) —
SUCCESS
ChartTheme fromPanel light theme
Test #688
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig birth chart categories
Test #689
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig transit chart categories
Test #690
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig synastry chart categories
Test #691
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig composite chart categories
Test #692
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig currentPlanets categories
Test #693
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig relocation categories
Test #694
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig solarReturn categories
Test #695
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig lunarReturn categories
Test #696
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig progressed categories
Test #697
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig draconic categories
Test #698
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig toMap returns all categories
Test #699
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig getPlanetCategoryForContext isTransit
Test #700
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig getSignCategoryForContext transit isTransit
Test #701
[ChartCategoriesConfig]
(unknown) —
SUCCESS
ChartCategoriesConfig getSignCategoryForContext birth
Test #702
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig defaultUserSelectionReturn
Test #703
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig contextDefaults map
Test #704
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig getDefaultReturn with valid context
Test #705
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig getDefaultReturn with null
Test #706
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig getDefaultReturn with empty string
Test #707
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig getDefaultReturn with unknown context
Test #708
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldUsePop with null returns true
Test #709
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldUsePop with empty returns true
Test #710
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldUsePop with route returns false
Test #711
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowMainAppbar hides for chartview
Test #712
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowMainAppbar hides for profile
Test #713
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowMainAppbar hides for tarot
Test #714
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowMainAppbar shows for other routes
Test #715
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowMainAppbar with null returns true
Test #716
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowMainAppbar strips query params
Test #717
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowContextMenu hides for known routes
Test #718
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowContextMenu shows for other routes
Test #719
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowContextMenu with null returns true
Test #720
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowBackButton for main tab routes returns false
Test #721
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowBackButton for hidden routes returns false
Test #722
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowBackButton for sub-routes returns true
Test #723
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowBackButton with null returns false
Test #724
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowBackButton for chartpickuser without forcePick
Test #725
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig shouldShowBackButton for chartpickuser with forcePick
Test #726
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig isMainTabRoute for main tabs
Test #727
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig isMainTabRoute for non-tab routes
Test #728
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig isMainTabRoute with null returns false
Test #729
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig isMainTabRoute for chartpickuser with forcePick
Test #730
[NavigationConfig]
(unknown) —
SUCCESS
NavigationConfig isMainTabRoute for chartpickuser without forcePick
Test #731
[ContentGatingConfig]
(unknown) —
SUCCESS
ContentGatingConfig constants
Test #732
[ContentGatingConfig]
(unknown) —
SUCCESS
ContentGatingConfig sessionThresholds
Test #733
[ContentGatingConfig]
(unknown) —
SUCCESS
ContentGatingConfig getViewLimitForSession first session
Test #734
[ContentGatingConfig]
(unknown) —
SUCCESS
ContentGatingConfig getViewLimitForSession after 1 session
Test #735
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/constants/preference_keys_test.dart
Test #736
[ContentGatingConfig]
(unknown) —
SUCCESS
ContentGatingConfig getViewLimitForSession after 4 sessions
Test #737
[ContentGatingConfig]
(unknown) —
SUCCESS
ContentGatingConfig getViewLimitForSession after 10 sessions
Test #738
[ContentGatingConfig]
(unknown) —
SUCCESS
ContentGatingConfig getGatingStateDescription first session
Test #739
[ContentGatingConfig]
(unknown) —
SUCCESS
ContentGatingConfig getGatingStateDescription after sessions
Test #740
[ContentGatingConfig]
(unknown) —
SUCCESS
ContentGatingConfig getGatingStateDescription at limit boundary
Test #741
[AppAssets]
(unknown) —
SUCCESS
AppAssets splashIcon
Test #742
[AppAssets]
(unknown) —
SUCCESS
AppAssets icLauncher
Test #743
[AppAssets]
(unknown) —
SUCCESS
AppAssets darkBackground
Test #744
[AppAssets]
(unknown) —
SUCCESS
AppAssets bgImage
Test #745
[AppAssets]
(unknown) —
SUCCESS
AppAssets mainImage
Test #746
[AppAssets]
(unknown) —
SUCCESS
AppAssets settingsIcons
Test #747
[AppAssets]
(unknown) —
SUCCESS
AppAssets splashImages has 10 images
Test #748
[AppAssets]
(unknown) —
SUCCESS
AppAssets banners has 5 images
Test #749
[AppAssets]
(unknown) —
SUCCESS
AppAssets bottomNavIcon dark
Test #750
[📋 GROUP: PrefKeys constants]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys constants 🧪 TEST: chart calculation keys
Logs:
🧪 TEST: chart calculation keys
Test #751
[AppAssets]
(unknown) —
SUCCESS
AppAssets bottomNavIcon light
Test #752
[AppAssets]
(unknown) —
SUCCESS
AppAssets bottomNavIconNames
Test #753
[📋 GROUP: PrefKeys constants]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys constants 🧪 TEST: display option keys
Logs:
🧪 TEST: display option keys
Test #754
[AppAssets]
(unknown) —
SUCCESS
AppAssets icon with theme-aware settings dark
Test #755
[📋 GROUP: PrefKeys constants]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys constants 🧪 TEST: asteroid keys
Logs:
🧪 TEST: asteroid keys
Test #756
[AppAssets]
(unknown) —
SUCCESS
AppAssets icon with theme-aware settings light
Test #757
[📋 GROUP: PrefKeys constants]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys constants 🧪 TEST: UI keys
Logs:
🧪 TEST: UI keys
Test #758
[AppAssets]
(unknown) —
SUCCESS
AppAssets icon with theme-aware unlock dark
Test #759
[AppAssets]
(unknown) —
SUCCESS
AppAssets icon with theme-aware unlock light
Test #760
[📋 GROUP: PrefKeys constants]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys constants 🧪 TEST: auth keys
Logs:
🧪 TEST: auth keys
Test #761
[📋 GROUP: PrefKeys constants]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys constants 🧪 TEST: notification keys
Logs:
🧪 TEST: notification keys
Test #762
[AppAssets]
(unknown) —
SUCCESS
AppAssets icon default (not theme-aware)
Test #763
[📋 GROUP: PrefKeys constants]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys constants 🧪 TEST: transit date keys
Logs:
🧪 TEST: transit date keys
Test #764
[AppAssets]
(unknown) —
SUCCESS
AppAssets deleteIcon
Test #765
[📋 GROUP: PrefKeys constants]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys constants 🧪 TEST: language and tarot keys
Logs:
🧪 TEST: language and tarot keys
Test #766
[AppAssets]
(unknown) —
SUCCESS
AppAssets logoutIcon
Test #767
[📋 GROUP: PrefKeys constants]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys constants 🧪 TEST: gating keys
Logs:
🧪 TEST: gating keys
Test #768
[AppAssets]
(unknown) —
SUCCESS
AppAssets themeAsset dark
Test #769
[AppAssets]
(unknown) —
SUCCESS
AppAssets themeAsset light
Test #770
[📋 GROUP: PrefKeys constants]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys constants 🧪 TEST: cached profile keys
Logs:
🧪 TEST: cached profile keys
Test #771
[AppAssets]
(unknown) —
SUCCESS
AppAssets themeAsset with directory
Test #772
[AppAssets]
(unknown) —
SUCCESS
AppAssets themeAsset with custom extension
Test #773
[AppAssets]
(unknown) —
SUCCESS
AppAssets backgroundDarkStars
Test #774
[AppAssets]
(unknown) —
SUCCESS
AppAssets image helper
Test #775
[📋 GROUP: PrefKeys noSyncKeys]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys noSyncKeys 🧪 TEST: contains auth-related keys
Logs:
🧪 TEST: contains auth-related keys
Test #776
[AppAssets]
(unknown) —
SUCCESS
AppAssets symbol dark
Test #777
[📋 GROUP: PrefKeys noSyncKeys]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys noSyncKeys 🧪 TEST: does not contain chart keys
Logs:
🧪 TEST: does not contain chart keys
Test #778
[AppAssets]
(unknown) —
SUCCESS
AppAssets symbol light
Test #779
[LiveServerData]
(unknown) —
SUCCESS
LiveServerData fromJson
Test #780
[📋 GROUP: PrefKeys noSyncKeys]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys noSyncKeys 🧪 TEST: has exactly 6 entries
Logs:
🧪 TEST: has exactly 6 entries
Test #781
[LiveServerData]
(unknown) —
SUCCESS
LiveServerData toJson
Test #782
[📋 GROUP: PrefKeys chartInvalidationKeys]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys chartInvalidationKeys 🧪 TEST: contains calculation constraint keys
Logs:
🧪 TEST: contains calculation constraint keys
Test #783
[LiveServerData]
(unknown) —
SUCCESS
LiveServerData isDifferentFrom true when different
Test #784
[📋 GROUP: PrefKeys chartInvalidationKeys]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys chartInvalidationKeys 🧪 TEST: does not contain view keys
Logs:
🧪 TEST: does not contain view keys
Test #785
[LiveServerData]
(unknown) —
SUCCESS
LiveServerData isDifferentFrom false when same
Test #786
[📋 GROUP: PrefKeys chartInvalidationKeys]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys chartInvalidationKeys 🧪 TEST: has exactly 6 entries
Logs:
🧪 TEST: has exactly 6 entries
Test #787
[LiveServerData]
(unknown) —
SUCCESS
LiveServerData isDifferentFrom with different id
Test #788
[LiveServerData]
(unknown) —
SUCCESS
LiveServerData isDifferentFrom with different title
Test #789
[LiveServerData]
(unknown) —
SUCCESS
LiveServerData isDifferentFrom with different cId
Test #790
[📋 GROUP: PrefKeys viewOnlyKeys]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys viewOnlyKeys 🧪 TEST: contains all visibility toggles
Logs:
🧪 TEST: contains all visibility toggles
Test #791
[LiveServerData]
(unknown) —
SUCCESS
LiveServerData isDifferentFrom with different amount
Test #792
[📋 GROUP: PrefKeys viewOnlyKeys]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys viewOnlyKeys 🧪 TEST: has 13 entries
Logs:
🧪 TEST: has 13 entries
Test #793
[LiveServerData]
(unknown) —
SUCCESS
LiveServerData isDifferentFrom with different value
Test #794
[📋 GROUP: PrefKeys viewOnlyKeys]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys viewOnlyKeys 🧪 TEST: no overlap with chartInvalidationKeys
Logs:
🧪 TEST: no overlap with chartInvalidationKeys
Test #795
[📋 GROUP: PrefKeys defaults]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys defaults 🧪 TEST: has expected chart defaults
Logs:
🧪 TEST: has expected chart defaults
Test #796
[ForecastService filterByType daily]
(unknown) —
SUCCESS
ForecastService filterByType daily includes Transit Aspects items starting today
Test #797
[📋 GROUP: PrefKeys defaults]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys defaults 🧪 TEST: has expected display defaults
Logs:
🧪 TEST: has expected display defaults
Test #798
[ForecastService filterByType daily]
(unknown) —
SUCCESS
ForecastService filterByType daily includes Forecasts items exact today
Test #799
[📋 GROUP: PrefKeys defaults]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys defaults 🧪 TEST: has expected asteroid defaults
Logs:
🧪 TEST: has expected asteroid defaults
Test #800
[ForecastService filterByType daily]
(unknown) —
SUCCESS
ForecastService filterByType daily includes items ending today
Test #801
[📋 GROUP: PrefKeys defaults]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys defaults 🧪 TEST: has expected UI defaults
Logs:
🧪 TEST: has expected UI defaults
Test #802
[ForecastService filterByType daily]
(unknown) —
SUCCESS
ForecastService filterByType daily excludes Moon items that are not Transit Moon
Test #803
[📋 GROUP: PrefKeys defaults]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys defaults 🧪 TEST: has expected notification defaults
Logs:
🧪 TEST: has expected notification defaults
Test #804
[ForecastService filterByType daily]
(unknown) —
SUCCESS
ForecastService filterByType daily includes Transit Moon items
Test #805
[📋 GROUP: PrefKeys defaults]
(unknown) —
SUCCESS
📋 GROUP: PrefKeys defaults 🧪 TEST: has expected ad defaults
Logs:
🧪 TEST: has expected ad defaults
Test #806
[ForecastService filterByType daily]
(unknown) —
SUCCESS
ForecastService filterByType daily excludes wrong category
Test #807
[ForecastService filterByType important]
(unknown) —
SUCCESS
ForecastService filterByType important includes forecast items in next week
Test #808
[ForecastService filterByType important]
(unknown) —
SUCCESS
ForecastService filterByType important includes Monthly items regardless of date
Test #809
[ForecastService filterByType important]
(unknown) —
SUCCESS
ForecastService filterByType important excludes Moon items
Test #810
[ForecastService filterByType important]
(unknown) —
SUCCESS
ForecastService filterByType important excludes MoonPhase horoscopeType
Test #811
[ForecastService filterByType important]
(unknown) —
SUCCESS
ForecastService filterByType important excludes MOON horoscopeType
Test #812
[ForecastService filterByType importantAll]
(unknown) —
SUCCESS
ForecastService filterByType importantAll includes Forecasts/Transit Aspects/Transit in Houses
Test #813
[ForecastService filterByType importantAll]
(unknown) —
SUCCESS
ForecastService filterByType importantAll excludes Transit Moon
Test #814
[ForecastService filterByType importantAll]
(unknown) —
SUCCESS
ForecastService filterByType importantAll includes House-containing categories
Test #815
[ForecastService filterByType matrixMoon]
(unknown) —
SUCCESS
ForecastService filterByType matrixMoon includes Transit Moon Transit Aspects
Test #816
[ForecastService filterByType moonTransits]
(unknown) —
SUCCESS
ForecastService filterByType moonTransits includes Transit Moon items excluding asteroids
Test #817
[ForecastService filterByType moonTransits]
(unknown) —
SUCCESS
ForecastService filterByType moonTransits excludes non-Transit categories
Test #818
[ForecastService filterByType moonTransits]
(unknown) —
SUCCESS
ForecastService filterByType moonTransits excludes non-Moon planet
Test #819
[ForecastService filterByType moonPhases]
(unknown) —
SUCCESS
ForecastService filterByType moonPhases includes MoonPhase and MOON horoscopeTypes
Test #820
[ForecastService filterByType moonPhases]
(unknown) —
SUCCESS
ForecastService filterByType moonPhases limits to 8 results
Test #821
[ForecastService filterByType moonCalendar]
(unknown) —
SUCCESS
ForecastService filterByType moonCalendar includes MoonPhase items
Test #822
[ForecastService filterByType retrograde]
(unknown) —
SUCCESS
ForecastService filterByType retrograde includes retrograde active items
Logs:
Checking retrograde for item: Mercury Retrograde in Gemini, retrograde: true, active : true
Test #823
[ForecastService filterByType retrograde]
(unknown) —
SUCCESS
ForecastService filterByType retrograde excludes non-retrograde items
Test #824
[ForecastService filterByType retrograde]
(unknown) —
SUCCESS
ForecastService filterByType retrograde excludes retrograde items that are not active
Test #825
[ForecastService filterByType currentPlanetEnergy]
(unknown) —
SUCCESS
ForecastService filterByType currentPlanetEnergy includes active transit items
Test #826
[ForecastService filterByType currentPlanetEnergy]
(unknown) —
SUCCESS
ForecastService filterByType currentPlanetEnergy excludes House items
Test #827
[ForecastService filterByType currentPlanetEnergy]
(unknown) —
SUCCESS
ForecastService filterByType currentPlanetEnergy excludes Transit Moon
Test #828
[ForecastService filterByType currentPlanetEnergy]
(unknown) —
SUCCESS
ForecastService filterByType currentPlanetEnergy excludes items without "in "
Test #829
[ForecastService filterByType currentPlanetEnergy]
(unknown) —
SUCCESS
ForecastService filterByType currentPlanetEnergy excludes ended items
Test #830
[ForecastService filterByType upcomingPlanetEnergy]
(unknown) —
SUCCESS
ForecastService filterByType upcomingPlanetEnergy includes upcoming items within 30 days
Test #831
[ForecastService filterByType upcomingPlanetEnergy]
(unknown) —
SUCCESS
ForecastService filterByType upcomingPlanetEnergy excludes items starting past 30 days
Test #832
[ForecastService filterByType upcomingPlanetEnergy]
(unknown) —
SUCCESS
ForecastService filterByType upcomingPlanetEnergy excludes House items
Test #833
[ForecastService filterByType personalPlanets]
(unknown) —
SUCCESS
ForecastService filterByType personalPlanets includes Forecasts non-retrograde non-Moon
Test #834
[ForecastService filterByType personalPlanets]
(unknown) —
SUCCESS
ForecastService filterByType personalPlanets excludes retrograde
Test #835
[ForecastService filterByType personalPlanets]
(unknown) —
SUCCESS
ForecastService filterByType personalPlanets excludes Moon items
Test #836
[ForecastService filterByType personalPlanets]
(unknown) —
SUCCESS
ForecastService filterByType personalPlanets excludes non-Forecasts categories
Test #837
[ForecastService filterByType importantBirth delegates to importantAll]
(unknown) —
SUCCESS
ForecastService filterByType importantBirth delegates to importantAll works same as importantAll
Test #838
[ChartRenderingService static helpers]
(unknown) —
SUCCESS
ChartRenderingService static helpers buildChartData with formation data
Test #839
[ChartRenderingService static helpers]
(unknown) —
SUCCESS
ChartRenderingService static helpers buildChartData with empty houses generates defaults
Test #840
[ChartRenderingService static helpers]
(unknown) —
SUCCESS
ChartRenderingService static helpers buildChartData maps planets by shapesIndex
Test #841
[ChartRenderingService static helpers]
(unknown) —
SUCCESS
ChartRenderingService static helpers buildChartData handles node aliases
Test #842
[ChartRenderingService static helpers]
(unknown) —
SUCCESS
ChartRenderingService static helpers buildChartData handles midheaven/mc aliases
Test #843
[ChartRenderingService static helpers]
(unknown) —
SUCCESS
ChartRenderingService static helpers cacheSize starts at 0
Logs:
🗑️ Cache cleared
Test #844
[ChartRenderingService static helpers]
(unknown) —
SUCCESS
ChartRenderingService static helpers getCacheStats returns info
Logs:
🗑️ Cache cleared
Test #845
[ChartRenderingService static helpers]
(unknown) —
SUCCESS
ChartRenderingService static helpers forceDispose resets state
Logs:
🗑️ Cache cleared
Test #846
[ChartRenderingService static helpers]
(unknown) —
SUCCESS
ChartRenderingService static helpers clearCache empties cache
Logs:
🗑️ Cache cleared
Test #847
[ReportResult]
(unknown) —
SUCCESS
ReportResult success factory with map data
Test #848
[ReportResult]
(unknown) —
SUCCESS
ReportResult success factory with string data
Test #849
[ReportResult]
(unknown) —
SUCCESS
ReportResult success factory with metadata
Test #850
[ReportResult]
(unknown) —
SUCCESS
ReportResult failure factory
Test #851
[MatrixReportRequest]
(unknown) —
SUCCESS
MatrixReportRequest toJson
Test #852
[MatrixReportRequest]
(unknown) —
SUCCESS
MatrixReportRequest reportName from constants
Test #853
[MatrixReportRequest]
(unknown) —
SUCCESS
MatrixReportRequest normalizeView foundation
Test #854
[MatrixReportRequest]
(unknown) —
SUCCESS
MatrixReportRequest normalizeView journey
Test #855
[MatrixReportRequest]
(unknown) —
SUCCESS
MatrixReportRequest normalizeView all aspects
Test #856
[MatrixReportRequest]
(unknown) —
SUCCESS
MatrixReportRequest normalizeView unknown maps to all
Test #857
[HybridRouter]
(unknown) —
SUCCESS
HybridRouter register and isFlutterRoute
Logs:
🔍 Registered route: /test-route-coverage
🔍 isFlutterRoute check - path: /test-route-coverage, cleanPath: /test-route-coverage, isRegistered: true
- Available routes: [/test-route-coverage]
🔍 isFlutterRoute check - path: /nonexistent-xyz, cleanPath: /nonexistent-xyz, isRegistered: false
- Available routes: [/test-route-coverage]
Test #858
[HybridRouter]
(unknown) —
SUCCESS
HybridRouter isRegistered is alias for isFlutterRoute
Logs:
🔍 Registered route: /test-alias
🔍 isFlutterRoute check - path: /test-alias, cleanPath: /test-alias, isRegistered: true
- Available routes: [/test-route-coverage, /test-alias]
Test #859
[HybridRouter]
(unknown) —
SUCCESS
HybridRouter registeredRoutes returns list
Test #860
[HybridRouter]
(unknown) —
SUCCESS
HybridRouter tryResolveIntelligentRoute with tarot card code
Logs:
🔍 Registered route: /guide
🔍 tryResolveIntelligentRoute - URL: Tarot/A01
- Path segments: [Tarot, A01]
- Query params: {}
Tarot card resolved: Tarot/A01 → /guide?tab=tarot&category=Tarot+Major+Arcana&cardName=Magician
Card: Magician (Tarot Major Arcana)
Test #861
[HybridRouter]
(unknown) —
SUCCESS
HybridRouter tryResolveIntelligentRoute with invalid tarot code
Logs:
🔍 tryResolveIntelligentRoute - URL: Tarot/XYZ
- Path segments: [Tarot, XYZ]
- Query params: {}
Invalid tarot card code: XYZ
🔍 No matching route found for: tarot
Test #862
[HybridRouter]
(unknown) —
SUCCESS
HybridRouter tryResolveIntelligentRoute with empty url
Test #863
[HybridRouter]
(unknown) —
SUCCESS
HybridRouter tryResolveIntelligentRoute with just slash
Test #864
[HybridRouter]
(unknown) —
SUCCESS
HybridRouter tryResolveIntelligentRoute with component deep link
Logs:
🔍 Registered route: /component
🔍 tryResolveIntelligentRoute - URL: Component/Sun/Cancer
- Path segments: [Component, Sun, Cancer]
- Query params: {}
Test #865
[HybridRouter]
(unknown) —
SUCCESS
HybridRouter tryResolveIntelligentRoute with share deep link
Logs:
🔍 Registered route: /tarot
🔍 tryResolveIntelligentRoute - URL: share/tarot?spreadIndex=1
- Path segments: [share, tarot]
- Query params: {spreadIndex: 1}
ShareDeepLinkHandler.resolve - URL: share/tarot?spreadIndex=1
ShareDeepLinkHandler.resolve - Segments: [share, tarot]
ShareDeepLinkHandler: Share type: tarot
ShareDeepLinkHandler: Query params: {spreadIndex: 1}
ShareDeepLinkHandler: Query string: spreadIndex=1
ShareDeepLinkHandler: Resolved: share/tarot?spreadIndex=1 → /tarot?spreadId=1
Test #866
[HybridRouter]
(unknown) —
SUCCESS
HybridRouter tryResolveIntelligentRoute with host-based URL
Logs:
🔍 Registered route: /chartview
🔍 tryResolveIntelligentRoute - URL: astromatrix.app/chartview/transit
- Path segments: [astromatrix.app, chartview, transit]
- Query params: {}
✨ Intelligently resolved: astromatrix.app/chartview/transit → /chartview?type=transit
Test #867
[HybridRouter]
(unknown) —
SUCCESS
HybridRouter tryResolveIntelligentRoute with registered route + extra segments
Logs:
🔍 Registered route: /calendars
🔍 tryResolveIntelligentRoute - URL: /calendars/Moon
- Path segments: [calendars, Moon]
- Query params: {}
✨ Intelligently resolved: /calendars/Moon → /calendars?tab=Moon
Test #868
[HybridRouter]
(unknown) —
SUCCESS
HybridRouter tryResolveIntelligentRoute with query params
Logs:
🔍 Registered route: /journal
🔍 tryResolveIntelligentRoute - URL: /journal?tab=tarot
- Path segments: [journal]
- Query params: {tab: tarot}
✨ Intelligently resolved: /journal?tab=tarot → /journal?tab=tarot
Test #869
[LanguageService patterns]
(unknown) —
SUCCESS
LanguageService patterns date patterns match dates
Test #870
[LanguageService patterns]
(unknown) —
SUCCESS
LanguageService patterns date with month name
Test #871
[LanguageService patterns]
(unknown) —
SUCCESS
LanguageService patterns time patterns
Test #872
[LanguageService patterns]
(unknown) —
SUCCESS
LanguageService patterns number patterns
Test #873
[LanguageService patterns]
(unknown) —
SUCCESS
LanguageService patterns URL patterns
Test #874
[LanguageService patterns]
(unknown) —
SUCCESS
LanguageService patterns email patterns
Test #875
[LanguageService patterns]
(unknown) —
SUCCESS
LanguageService patterns phone number patterns
Test #876
[LanguageService patterns]
(unknown) —
SUCCESS
LanguageService patterns uppercase acronym patterns
Test #877
[LanguageService patterns]
(unknown) —
SUCCESS
LanguageService patterns proper noun patterns
Test #878
[LanguageService patterns]
(unknown) —
SUCCESS
LanguageService patterns non-matching text
Test #879
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic bool from bool
Test #880
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic bool from int
Test #881
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic bool from string
Test #882
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic bool from unsupported returns null
Test #883
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic double from double
Test #884
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic double from int
Test #885
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic double from string
Test #886
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic double from invalid string returns null
Test #887
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic int from int
Test #888
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/metrics_sync_test.dart
Test #889
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic int from double
Test #890
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic int from string
Test #891
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic int from invalid string returns null
Test #892
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic string from anything
Test #893
[Type normalization logic]
(unknown) —
SUCCESS
Type normalization logic other type returns raw
Test #894
[ForecastType enum]
(unknown) —
SUCCESS
ForecastType enum all values exist
Test #895
[MatrixItem advanced]
(unknown) —
SUCCESS
MatrixItem advanced full constructor with all forecast fields
Test #896
[MatrixItem advanced]
(unknown) —
SUCCESS
MatrixItem advanced isActive false when ends is null
Test #897
[MatrixItem advanced]
(unknown) —
SUCCESS
MatrixItem advanced isActive false when ends is in past
Test #898
[MatrixItem advanced]
(unknown) —
SUCCESS
MatrixItem advanced copyWith many fields
Test #899
[UserProfile Metrics & Settings]
(unknown) —
SUCCESS
UserProfile Metrics & Settings UserProfile fromJson initializes empty stats and settings
Logs:
🔧 UserProfile.fromJson() parsing...
🔍 Raw JSON: {ID: test_123, Name: Test User, BirthDay: 1, BirthMonth: 1, BirthYear: 2000, BirthTime: 12:00, BirthTown: London, Gender: true, Famous: false, UID: user_abc, Lat: 51.5, Lng: -0.1, TimeZone: 0}
🔍 Parsed ID: test_123
🔍 Found nestedData: NO (Null)
🔍 bigThree after nestedData check: NULL
🔍 Found directBig3: NO
🔍 Final bigThree for Test User: NULL SIGN
Test #900
[MatrixItem advanced]
(unknown) —
SUCCESS
MatrixItem advanced toJson includes all fields
Test #901
[UserProfile Metrics & Settings]
(unknown) —
SUCCESS
UserProfile Metrics & Settings UserProfile toJson includes stats and settings
Test #902
[ChartType and ChartTypeConfig]
(unknown) —
SUCCESS
ChartType and ChartTypeConfig all ChartType displayNames
Test #903
[ChartType and ChartTypeConfig]
(unknown) —
SUCCESS
ChartType and ChartTypeConfig all ChartType backendTypes
Test #904
[UserService Merge Logic]
(unknown) —
SUCCESS
UserService Merge Logic mergeProfiles sums counts and computes weighted averages
Test #905
[ChartType and ChartTypeConfig]
(unknown) —
SUCCESS
ChartType and ChartTypeConfig ChartTypeConfig.forType birth
Test #906
[ChartType and ChartTypeConfig]
(unknown) —
SUCCESS
ChartType and ChartTypeConfig ChartTypeConfig.forType synastry requires date2
Test #907
[ChartType and ChartTypeConfig]
(unknown) —
SUCCESS
ChartType and ChartTypeConfig ChartTypeConfig.forType composite requires date2
Test #908
[ChartType and ChartTypeConfig]
(unknown) —
SUCCESS
ChartType and ChartTypeConfig ChartTypeConfig.forType transit uses transit date
Test #909
[ChartType and ChartTypeConfig]
(unknown) —
SUCCESS
ChartType and ChartTypeConfig specific backendType values
Test #910
[MatrixType]
(unknown) —
SUCCESS
MatrixType all values
Test #911
[MatrixItem.toJson]
(unknown) —
SUCCESS
MatrixItem.toJson includes enriched fields
Test #912
[Batch translation response parsing logic]
(unknown) —
SUCCESS
Batch translation response parsing logic parse clean JSON response
Test #913
[Batch translation response parsing logic]
(unknown) —
SUCCESS
Batch translation response parsing logic parse response with markdown code block
Test #914
[Batch translation response parsing logic]
(unknown) —
SUCCESS
Batch translation response parsing logic batch prompt format
Test #915
[kSupportedLanguages]
(unknown) —
SUCCESS
kSupportedLanguages contains expected languages
Test #916
[ReportService validation logic]
(unknown) —
SUCCESS
ReportService validation logic synastry requires user2
Test #917
[ReportService validation logic]
(unknown) —
SUCCESS
ReportService validation logic composite requires user2
Test #918
[ReportService validation logic]
(unknown) —
SUCCESS
ReportService validation logic relocation requires location
Test #919
[ChartRenderingService planet index mapping]
(unknown) —
SUCCESS
ChartRenderingService planet index mapping all major planets map correctly via buildChartData
Test #920
[ChartRenderingService planet index mapping]
(unknown) —
SUCCESS
ChartRenderingService planet index mapping special bodies map correctly
Test #921
[ChartRenderingService planet index mapping]
(unknown) —
SUCCESS
ChartRenderingService planet index mapping unknown planet returns null index
Test #922
[ChartRenderingService planet index mapping]
(unknown) —
SUCCESS
ChartRenderingService planet index mapping non-map planet entries are skipped
Test #923
[Default houses generation]
(unknown) —
SUCCESS
Default houses generation all 12 signs mapped correctly
Test #924
[Default houses generation]
(unknown) —
SUCCESS
Default houses generation house degrees are 30 apart
Test #925
[HybridRouter buildWidget]
(unknown) —
SUCCESS
HybridRouter buildWidget buildWidget for registered route
Logs:
🔍 Registered route: /test-build-widget
Test #926
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/simple_payload_test.dart
Test #927
(unknown) —
SUCCESS
(setUpAll)
Test #928
(unknown) —
SUCCESS
Print complete payloads for comparison
Logs:
Skip: Requires real API for LocationService and AstroApiService
Test #929
(unknown) —
SUCCESS
(tearDownAll)
Test #930
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/astro_ui_test.dart
Test #931
(unknown) —
SUCCESS
(setUpAll)
Logs:
🚀 Starting API Integration Tests...
Test #932
[Location API Tests]
(unknown) —
SUCCESS
Location API Tests Search for locations - New York
Logs:
Skip: Requires real Location API
Test #933
[Location API Tests]
(unknown) —
SUCCESS
Location API Tests Search for locations - London
Logs:
Skip: Requires real Location API
Test #934
[Location API Tests]
(unknown) —
SUCCESS
Location API Tests Get timezone information
Logs:
Skip: Requires real Location API
Test #935
[Location API Tests]
(unknown) —
SUCCESS
Location API Tests Empty query returns empty results
Logs:
Skip: Requires real Location API
Test #936
[Location API Tests]
(unknown) —
SUCCESS
Location API Tests Short query returns empty results
Logs:
Skip: Requires real Location API
Test #937
[Birth Chart API Tests]
(unknown) —
SUCCESS
Birth Chart API Tests Calculate birth chart - Valid data
Logs:
Skip: Requires real Chart API
Test #938
[Birth Chart API Tests]
(unknown) —
SUCCESS
Birth Chart API Tests Calculate birth chart - Different locations
Logs:
Skip: Requires real Chart API
Test #939
[Complete Flow Tests]
(unknown) —
SUCCESS
Complete Flow Tests Full user flow - Search → Select → Calculate
Logs:
Skip: Requires real API
Test #940
[Error Handling Tests]
(unknown) —
SUCCESS
Error Handling Tests Invalid city name
Logs:
Skip: Requires real Location API
Test #941
[Error Handling Tests]
(unknown) —
SUCCESS
Error Handling Tests Form validation - Empty name
Logs:
🧪 Testing form validation...
✅ Empty name validation works
Test #942
[Error Handling Tests]
(unknown) —
SUCCESS
Error Handling Tests Form validation - Invalid date
Logs:
🧪 Testing invalid date...
✅ Date validation works
Test #943
[Error Handling Tests]
(unknown) —
SUCCESS
Error Handling Tests Form validation - Invalid time
Logs:
🧪 Testing invalid time...
✅ Time validation works
Test #944
(unknown) —
SUCCESS
(tearDownAll)
Logs:
✅ All tests completed!
Test #945
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/coverage_boost6_test.dart
Test #946
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics tarotLinks has 79 entries
Test #947
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics tarotLinks A00 is The Fool
Test #948
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics tarotLinks A01 is Magician
Test #949
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics tarotLinks A78 is King of Cups
Test #950
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics tarotLinks major arcana A00-A22
Test #951
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics tarotLinks wands A23-A36
Test #952
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics tarotLinks pentacles A37-A50
Test #953
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics tarotLinks swords A51-A64
Test #954
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics tarotLinks cups A65-A78
Test #955
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics convertTarotTitle replaces Princess and Prince
Test #956
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics convertTarotTitle leaves other titles unchanged
Test #957
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics revertTarotTitle replaces Page and Knight
Test #958
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics revertTarotTitle leaves other titles unchanged
Test #959
[TarotService statics]
(unknown) —
SUCCESS
TarotService statics convertTarotTitle and revertTarotTitle are inverse
Test #960
[TarotService.getSpreadLayout]
(unknown) —
SUCCESS
TarotService.getSpreadLayout 3 Card layout
Test #961
[TarotService.getSpreadLayout]
(unknown) —
SUCCESS
TarotService.getSpreadLayout 6 Card layout
Test #962
[TarotService.getSpreadLayout]
(unknown) —
SUCCESS
TarotService.getSpreadLayout 5 Card Diamond layout
Test #963
[TarotService.getSpreadLayout]
(unknown) —
SUCCESS
TarotService.getSpreadLayout 4 Card Diamond layout
Test #964
[TarotService.getSpreadLayout]
(unknown) —
SUCCESS
TarotService.getSpreadLayout 5 Card Cross layout
Test #965
[TarotService.getSpreadLayout]
(unknown) —
SUCCESS
TarotService.getSpreadLayout 5 Card Fork layout
Test #966
[TarotService.getSpreadLayout]
(unknown) —
SUCCESS
TarotService.getSpreadLayout 5 Card Path layout
Test #967
[TarotService.getSpreadLayout]
(unknown) —
SUCCESS
TarotService.getSpreadLayout 7 Card Above & Below layout
Test #968
[TarotService.getSpreadLayout]
(unknown) —
SUCCESS
TarotService.getSpreadLayout unknown spread defaults to 3 card
Test #969
[TarotService.getSpreadLayout]
(unknown) —
SUCCESS
TarotService.getSpreadLayout empty string defaults to 3 card
Test #970
[TarotService.getTarotList]
(unknown) —
SUCCESS
TarotService.getTarotList major arcana has 22 cards
Test #971
[TarotService.getTarotList]
(unknown) —
SUCCESS
TarotService.getTarotList wands has 14 cards
Test #972
[TarotService.getTarotList]
(unknown) —
SUCCESS
TarotService.getTarotList pentacles has 14 cards
Test #973
[TarotService.getTarotList]
(unknown) —
SUCCESS
TarotService.getTarotList cups has 14 cards
Test #974
[TarotService.getTarotList]
(unknown) —
SUCCESS
TarotService.getTarotList swords has 14 cards
Test #975
[TarotService.getTarotList]
(unknown) —
SUCCESS
TarotService.getTarotList unknown section returns empty
Test #976
[TarotService.getTarotList]
(unknown) —
SUCCESS
TarotService.getTarotList case-insensitive section lookup
Test #977
[TarotService.getTarotList]
(unknown) —
SUCCESS
TarotService.getTarotList converts Princess to Page in results
Test #978
[TarotService.getTarotList]
(unknown) —
SUCCESS
TarotService.getTarotList converts Prince to Knight in results
Test #979
[TarotCardResult]
(unknown) —
SUCCESS
TarotCardResult success factory
Test #980
[TarotCardResult]
(unknown) —
SUCCESS
TarotCardResult success factory with traits
Test #981
[TarotCardResult]
(unknown) —
SUCCESS
TarotCardResult error factory
Test #982
[TarotSpread.fromJson]
(unknown) —
SUCCESS
TarotSpread.fromJson parses basic spread
Test #983
[TarotSpread.fromJson]
(unknown) —
SUCCESS
TarotSpread.fromJson parses Active from int 1
Test #984
[TarotSpread.fromJson]
(unknown) —
SUCCESS
TarotSpread.fromJson parses Active from int 0
Test #985
[TarotSpread.fromJson]
(unknown) —
SUCCESS
TarotSpread.fromJson parses Active from string "1"
Test #986
[TarotSpread.fromJson]
(unknown) —
SUCCESS
TarotSpread.fromJson parses Active from string "true"
Test #987
[TarotSpread.fromJson]
(unknown) —
SUCCESS
TarotSpread.fromJson parses Active from string "false"
Test #988
[TarotSpread.fromJson]
(unknown) —
SUCCESS
TarotSpread.fromJson parses Featured from "true"
Test #989
[TarotSpread.fromJson]
(unknown) —
SUCCESS
TarotSpread.fromJson parses Featured from bool
Test #990
[TarotSpread.fromJson]
(unknown) —
SUCCESS
TarotSpread.fromJson parses Order
Test #991
[TarotSpread.fromJson]
(unknown) —
SUCCESS
TarotSpread.fromJson getCardNames splits cards
Test #992
[TarotSpread.fromJson]
(unknown) —
SUCCESS
TarotSpread.fromJson getCardNames trims whitespace
Test #993
[TarotSpread.fromJson]
(unknown) —
SUCCESS
TarotSpread.fromJson toJson round-trip
Test #994
[TarotReadingCard]
(unknown) —
SUCCESS
TarotReadingCard basic constructor
Test #995
[TarotReadingCard]
(unknown) —
SUCCESS
TarotReadingCard copyWith changes fields
Test #996
[TarotReadingCard]
(unknown) —
SUCCESS
TarotReadingCard copyWith preserves fields when not specified
Test #997
[TarotReadingCard]
(unknown) —
SUCCESS
TarotReadingCard fromApiResponse basic
Test #998
[TarotReadingCard]
(unknown) —
SUCCESS
TarotReadingCard fromApiResponse with empty data
Test #999
[TarotReadingCard]
(unknown) —
SUCCESS
TarotReadingCard fromApiResponse ignores items with different name
Test #1000
[ComponentTraits]
(unknown) —
SUCCESS
ComponentTraits fromJson with multiple categories
Test #1001
[ComponentTraits]
(unknown) —
SUCCESS
ComponentTraits fromJson empty data
Test #1002
[ComponentTraits]
(unknown) —
SUCCESS
ComponentTraits getCategory case-insensitive
Test #1003
[ComponentTraits]
(unknown) —
SUCCESS
ComponentTraits getCategory nonexistent returns empty
Test #1004
[ComponentTraits]
(unknown) —
SUCCESS
ComponentTraits hasCategory returns true/false
Test #1005
[ComponentTraits]
(unknown) —
SUCCESS
ComponentTraits allCategories is unmodifiable
Test #1006
[ComponentTraits]
(unknown) —
SUCCESS
ComponentTraits convenience getters
Test #1007
[ComponentTraits]
(unknown) —
SUCCESS
ComponentTraits toJson round-trip
Test #1008
[ComponentTraits]
(unknown) —
SUCCESS
ComponentTraits toString includes category info
Test #1009
[TraitItem]
(unknown) —
SUCCESS
TraitItem fromJson
Test #1010
[TraitItem]
(unknown) —
SUCCESS
TraitItem fromJson with null Value
Test #1011
[TraitItem]
(unknown) —
SUCCESS
TraitItem toJson
Test #1012
[TraitItem]
(unknown) —
SUCCESS
TraitItem toString
Test #1013
[DegreeInfo]
(unknown) —
SUCCESS
DegreeInfo fromJson basic
Test #1014
[DegreeInfo]
(unknown) —
SUCCESS
DegreeInfo fromJson with optional fields
Test #1015
[DegreeInfo]
(unknown) —
SUCCESS
DegreeInfo fromJson handles degree as string
Test #1016
[DegreeInfo]
(unknown) —
SUCCESS
DegreeInfo fromJson with missing fields uses defaults
Test #1017
[DegreeInfo]
(unknown) —
SUCCESS
DegreeInfo toJson round-trip
Test #1018
[DegreeInfo]
(unknown) —
SUCCESS
DegreeInfo toJson omits null optional fields
Test #1019
[DegreeInfo]
(unknown) —
SUCCESS
DegreeInfo getImagePath returns correct URL
Test #1020
[DegreeResult]
(unknown) —
SUCCESS
DegreeResult success
Test #1021
[DegreeResult]
(unknown) —
SUCCESS
DegreeResult error
Test #1022
[GlossaryTerm]
(unknown) —
SUCCESS
GlossaryTerm fromJson
Test #1023
[GlossaryTerm]
(unknown) —
SUCCESS
GlossaryTerm fromJson with missing fields
Test #1024
[SearchResult]
(unknown) —
SUCCESS
SearchResult fromJson basic
Test #1025
[SearchResult]
(unknown) —
SUCCESS
SearchResult fromJson adds .jpg if missing
Test #1026
[SearchResult]
(unknown) —
SUCCESS
SearchResult fromJson does not double-add .jpg
Test #1027
[SearchResult]
(unknown) —
SUCCESS
SearchResult fromJson empty image stays empty
Test #1028
[SearchResult]
(unknown) —
SUCCESS
SearchResult fromJson missing fields defaults
Test #1029
[GPTResult]
(unknown) —
SUCCESS
GPTResult success factory
Test #1030
[GPTResult]
(unknown) —
SUCCESS
GPTResult success factory with metadata
Test #1031
[GPTResult]
(unknown) —
SUCCESS
GPTResult error factory
Test #1032
[ComponentResult]
(unknown) —
SUCCESS
ComponentResult success factory
Test #1033
[ComponentResult]
(unknown) —
SUCCESS
ComponentResult success factory with traits
Test #1034
[ComponentResult]
(unknown) —
SUCCESS
ComponentResult error factory
Test #1035
[TraitsResult]
(unknown) —
SUCCESS
TraitsResult success factory
Test #1036
[TraitsResult]
(unknown) —
SUCCESS
TraitsResult error factory
Test #1037
[Video model extended]
(unknown) —
SUCCESS
Video model extended tags getter parses comma-separated
Test #1038
[Video model extended]
(unknown) —
SUCCESS
Video model extended tags getter trims whitespace
Test #1039
[Video model extended]
(unknown) —
SUCCESS
Video model extended tags getter with null tag returns empty
Test #1040
[Video model extended]
(unknown) —
SUCCESS
Video model extended tags getter with empty tag returns empty
Test #1041
[Video model extended]
(unknown) —
SUCCESS
Video model extended hasTag case-insensitive
Test #1042
[Video model extended]
(unknown) —
SUCCESS
Video model extended toString includes key info
Test #1043
[Video model extended]
(unknown) —
SUCCESS
Video model extended fromJson uses lowercase fallback keys
Test #1044
[VideoResult]
(unknown) —
SUCCESS
VideoResult success factory
Test #1045
[VideoResult]
(unknown) —
SUCCESS
VideoResult failure factory
Test #1046
[VideoResult]
(unknown) —
SUCCESS
VideoResult success factory without fromCache defaults to false
Test #1047
[VideoService.getRandomVideo]
(unknown) —
SUCCESS
VideoService.getRandomVideo returns null for empty list
Test #1048
[VideoService.getRandomVideo]
(unknown) —
SUCCESS
VideoService.getRandomVideo returns a video for non-empty list
Test #1049
[VideoService.getRandomVideo]
(unknown) —
SUCCESS
VideoService.getRandomVideo returns single video for single-element list
Test #1050
[HelpData]
(unknown) —
SUCCESS
HelpData fromJson
Test #1051
[HelpData]
(unknown) —
SUCCESS
HelpData fromJson with missing fields
Test #1052
[MatrixDataResult]
(unknown) —
SUCCESS
MatrixDataResult success factory
Test #1053
[MatrixDataResult]
(unknown) —
SUCCESS
MatrixDataResult failure factory
Test #1054
[SummarySortMode]
(unknown) —
SUCCESS
SummarySortMode all values exist
Test #1055
[MatrixService filterItems]
(unknown) —
SUCCESS
MatrixService filterItems getCategoryMenuOptions self type
Test #1056
[MatrixService filterItems]
(unknown) —
SUCCESS
MatrixService filterItems getCategoryMenuOptions relationship type
Test #1057
[MatrixService _calculateAttributes logic]
(unknown) —
SUCCESS
MatrixService _calculateAttributes logic empty items returns empty
Test #1058
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/login_test.dart
Test #1059
[MatrixService _calculateAttributes logic]
(unknown) —
SUCCESS
MatrixService _calculateAttributes logic counts trine as positive
Test #1060
[MatrixService _calculateAttributes logic]
(unknown) —
SUCCESS
MatrixService _calculateAttributes logic counts sextile as positive
Test #1061
[MatrixService _calculateAttributes logic]
(unknown) —
SUCCESS
MatrixService _calculateAttributes logic counts conjunct as positive
Test #1062
[MatrixService _calculateAttributes logic]
(unknown) —
SUCCESS
MatrixService _calculateAttributes logic counts square as negative
Test #1063
[MatrixService _calculateAttributes logic]
(unknown) —
SUCCESS
MatrixService _calculateAttributes logic counts opposition as negative
Test #1064
[MatrixService _calculateAttributes logic]
(unknown) —
SUCCESS
MatrixService _calculateAttributes logic counts inconjunct as negative
Test #1065
[MatrixService _calculateAttributes logic]
(unknown) —
SUCCESS
MatrixService _calculateAttributes logic skips house placements
Test #1066
[MatrixService _calculateAttributes logic]
(unknown) —
SUCCESS
MatrixService _calculateAttributes logic skips items with empty facet
Test #1067
[MatrixService _calculateAttributes logic]
(unknown) —
SUCCESS
MatrixService _calculateAttributes logic unknown aspect adds to total only
Test #1068
[MatrixService _calculateAttributes logic]
(unknown) —
SUCCESS
MatrixService _calculateAttributes logic multiple items in same facet accumulate
Test #1069
[MatrixService _calculateAttributes logic]
(unknown) —
SUCCESS
MatrixService _calculateAttributes logic skips all house ordinals
Test #1070
[getSortedSummary logic]
(unknown) —
SUCCESS
getSortedSummary logic sort by total - Wisdom first
Test #1071
[getSortedSummary logic]
(unknown) —
SUCCESS
getSortedSummary logic sort by positive - Wisdom first
Test #1072
[getSortedSummary logic]
(unknown) —
SUCCESS
getSortedSummary logic sort by negative - Career first
Test #1073
(unknown) —
SUCCESS
(setUpAll)
Logs:
✅ Storage initialized
Test #1074
(unknown) —
SUCCESS
Complete Login Flow Tests
Logs:
Skip: Requires real Login API server
Test #1075
[getSortedSummary logic]
(unknown) —
SUCCESS
getSortedSummary logic sort alphabetical - Career first
Test #1076
(unknown) —
SUCCESS
(tearDownAll)
Test #1077
[getSortedSummary logic]
(unknown) —
SUCCESS
getSortedSummary logic sort by net - Wisdom (net=7) first
Test #1078
[MatrixService facet mappings]
(unknown) —
SUCCESS
MatrixService facet mappings self mapping has expected keys
Test #1079
[MatrixService facet mappings]
(unknown) —
SUCCESS
MatrixService facet mappings self mapping unique target facets
Test #1080
[MatrixService facet mappings]
(unknown) —
SUCCESS
MatrixService facet mappings relationship mapping has web app overrides
Test #1081
[MatrixService facet mappings]
(unknown) —
SUCCESS
MatrixService facet mappings relationship mapping unique target facets
Test #1082
[SabianService.getCriticalDegreeInfo]
(unknown) —
SUCCESS
SabianService.getCriticalDegreeInfo anaretic degree (29) always returns Anaretic
Test #1083
[SabianService.getCriticalDegreeInfo]
(unknown) —
SUCCESS
SabianService.getCriticalDegreeInfo avatar degree (0) always returns Avatar
Test #1084
[SabianService.getCriticalDegreeInfo]
(unknown) —
SUCCESS
SabianService.getCriticalDegreeInfo cardinal critical degrees at 13
Test #1085
[SabianService.getCriticalDegreeInfo]
(unknown) —
SUCCESS
SabianService.getCriticalDegreeInfo cardinal critical degrees at 26
Test #1086
[SabianService.getCriticalDegreeInfo]
(unknown) —
SUCCESS
SabianService.getCriticalDegreeInfo cardinal signs are Aries Cancer Libra Capricorn
Test #1087
[SabianService.getCriticalDegreeInfo]
(unknown) —
SUCCESS
SabianService.getCriticalDegreeInfo fixed critical degrees at 8-9
Test #1088
[SabianService.getCriticalDegreeInfo]
(unknown) —
SUCCESS
SabianService.getCriticalDegreeInfo fixed critical degrees at 21-22
Test #1089
[SabianService.getCriticalDegreeInfo]
(unknown) —
SUCCESS
SabianService.getCriticalDegreeInfo mutable critical degrees at 4 and 17
Test #1090
[SabianService.getCriticalDegreeInfo]
(unknown) —
SUCCESS
SabianService.getCriticalDegreeInfo non-critical degree returns null
Test #1091
[SabianService.getCriticalDegreeInfo]
(unknown) —
SUCCESS
SabianService.getCriticalDegreeInfo non-critical degree for cardinal sign
Test #1092
[SabianService.getCriticalDegreeInfo]
(unknown) —
SUCCESS
SabianService.getCriticalDegreeInfo Pisces (mutable) at 4
Test #1093
[SabianService.getCriticalDegreeInfo]
(unknown) —
SUCCESS
SabianService.getCriticalDegreeInfo Sagittarius (mutable) at 17
Test #1094
[CriticalDegreeInfo]
(unknown) —
SUCCESS
CriticalDegreeInfo constructor
Test #1095
[ChartShare payload]
(unknown) —
SUCCESS
ChartShare payload birth chart payload with user1
Test #1096
[ChartShare payload]
(unknown) —
SUCCESS
ChartShare payload synastry chart payload with user2
Test #1097
[ChartShare payload]
(unknown) —
SUCCESS
ChartShare payload transit chart with transitDate
Test #1098
[ChartShare payload]
(unknown) —
SUCCESS
ChartShare payload relocation chart with coordinates
Test #1099
[ChartShare payload]
(unknown) —
SUCCESS
ChartShare payload chart with preference overrides
Test #1100
[ChartShare payload]
(unknown) —
SUCCESS
ChartShare payload user1 with empty birthTime does not include u1time
Test #1101
[ChartShare payload]
(unknown) —
SUCCESS
ChartShare payload user1 with zero lat/lng does not include them
Test #1102
[ChartShare payload]
(unknown) —
SUCCESS
ChartShare payload user1 with zero timezone does not include u1tz
Test #1103
[ChartShare payload]
(unknown) —
SUCCESS
ChartShare payload getSharePreview for birth chart
Test #1104
[ChartShare payload]
(unknown) —
SUCCESS
ChartShare payload getSharePreview for synastry chart
Test #1105
[ChartShare payload]
(unknown) —
SUCCESS
ChartShare payload getShareText includes URL and names
Test #1106
[ChartShare payload]
(unknown) —
SUCCESS
ChartShare payload getShareText for synastry includes both names
Test #1107
[ShareService value encoding]
(unknown) —
SUCCESS
ShareService value encoding null returns empty
Test #1108
[ShareService value encoding]
(unknown) —
SUCCESS
ShareService value encoding string passthrough
Test #1109
[ShareService value encoding]
(unknown) —
SUCCESS
ShareService value encoding int to string
Test #1110
[ShareService value encoding]
(unknown) —
SUCCESS
ShareService value encoding double to string
Test #1111
[ShareService value encoding]
(unknown) —
SUCCESS
ShareService value encoding bool true
Test #1112
[ShareService value encoding]
(unknown) —
SUCCESS
ShareService value encoding bool false
Test #1113
[ShareService value encoding]
(unknown) —
SUCCESS
ShareService value encoding list to comma-separated
Test #1114
[ShareService value encoding]
(unknown) —
SUCCESS
ShareService value encoding list of strings
Test #1115
[ShareService value encoding]
(unknown) —
SUCCESS
ShareService value encoding nested list
Test #1116
[TarotCard fromJson title conversion]
(unknown) —
SUCCESS
TarotCard fromJson title conversion converts Princess to Page
Test #1117
[TarotCard fromJson title conversion]
(unknown) —
SUCCESS
TarotCard fromJson title conversion converts Prince to Knight
Test #1118
[TarotCard fromJson title conversion]
(unknown) —
SUCCESS
TarotCard fromJson title conversion toJson preserves all fields
Test #1119
[TarotCard fromJson title conversion]
(unknown) —
SUCCESS
TarotCard fromJson title conversion Image defaults to Card when missing
Test #1120
[MatrixViewMode]
(unknown) —
SUCCESS
MatrixViewMode all values
Test #1121
[LocationType]
(unknown) —
SUCCESS
LocationType values
Test #1122
[OOBType coverage]
(unknown) —
SUCCESS
OOBType coverage all values exist
Test #1123
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/services_coverage_test.dart
Test #1124
[CalculationConstraints]
(unknown) —
SUCCESS
CalculationConstraints defaults has expected values
Test #1125
[CalculationConstraints]
(unknown) —
SUCCESS
CalculationConstraints toCacheKeyFragment produces consistent key
Test #1126
[CalculationConstraints]
(unknown) —
SUCCESS
CalculationConstraints toCacheKeyFragment changes with sidereal
Test #1127
[CalculationConstraints]
(unknown) —
SUCCESS
CalculationConstraints toCacheKeyFragment changes with smartOrb
Test #1128
[CalculationConstraints]
(unknown) —
SUCCESS
CalculationConstraints getOrbForChartType returns correct orb
Test #1129
[CalculationConstraints]
(unknown) —
SUCCESS
CalculationConstraints copyWith creates new instance with changed values
Test #1130
[CalculationConstraints]
(unknown) —
SUCCESS
CalculationConstraints equality operator works
Test #1131
[CalculationConstraints]
(unknown) —
SUCCESS
CalculationConstraints inequality when values differ
Test #1132
[CalculationConstraints]
(unknown) —
SUCCESS
CalculationConstraints toString includes cache key
Test #1133
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints defaults has expected values
Test #1134
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints shouldShowBody - standard planets visible when showPlanets true
Test #1135
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints shouldShowBody - standard planets hidden when showPlanets false
Test #1136
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints shouldShowBody - asteroids respect individual flags
Test #1137
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints shouldShowBody - Pholus always hidden
Test #1138
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints shouldShowBody - Earth always hidden
Test #1139
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints shouldShowBody - null/empty returns true
Test #1140
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints shouldShowBody - unknown body hidden by default
Test #1141
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints shouldShowBody - enabled asteroids
Test #1142
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints shouldShowAspect - major aspects always shown when showAspects true
Test #1143
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints shouldShowAspect - all hidden when showAspects false
Test #1144
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints shouldShowAspect - minor aspects require isMinor
Test #1145
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints shouldShowAspect - null/empty returns true
Test #1146
[ViewConstraints]
(unknown) —
SUCCESS
ViewConstraints copyWith creates modified copy
Test #1147
[ChartConstraints]
(unknown) —
SUCCESS
ChartConstraints defaults has both sub-defaults
Test #1148
[ChartConstraints]
(unknown) —
SUCCESS
ChartConstraints calculationConstraintKeys are defined
Test #1149
[ChartConstraints]
(unknown) —
SUCCESS
ChartConstraints viewConstraintKeys are defined
Test #1150
[ChartConstraints]
(unknown) —
SUCCESS
ChartConstraints calculationConstraintKeys and viewConstraintKeys are disjoint
Test #1151
[PrefKeys]
(unknown) —
SUCCESS
PrefKeys all key constants are non-empty strings
Test #1152
[PrefKeys]
(unknown) —
SUCCESS
PrefKeys defaults map has required keys
Test #1153
[PrefKeys]
(unknown) —
SUCCESS
PrefKeys noSyncKeys contains sensitive keys
Test #1154
[PrefKeys]
(unknown) —
SUCCESS
PrefKeys chartInvalidationKeys matches calculation keys
Test #1155
[PrefKeys]
(unknown) —
SUCCESS
PrefKeys viewOnlyKeys contains visibility keys
Test #1156
[PrefKeys]
(unknown) —
SUCCESS
PrefKeys viewOnlyKeys and chartInvalidationKeys are disjoint
Test #1157
[PrefKeys]
(unknown) —
SUCCESS
PrefKeys additional key constants
Test #1158
[PayloadService]
(unknown) —
SUCCESS
PayloadService userToChartDate converts user correctly
Test #1159
[PayloadService]
(unknown) —
SUCCESS
PayloadService userToChartDate with location overrides
Test #1160
[PayloadService]
(unknown) —
SUCCESS
PayloadService userToChartDate with type override
Test #1161
[PayloadService]
(unknown) —
SUCCESS
PayloadService userToChartDate with 12h time format
Test #1162
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildTransitDate from DateTime
Logs:
buildTransitDate:
Input date: 2025-03-15 14:30:00.000 (device local)
Location: none
Adjusted date: 2025-03-15 14:30:00.000
Time: 14:30
Offset: 0
Lat/Lng: null, null
Test #1163
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildTransitDate with location
Logs:
buildTransitDate:
Input date: 2025-06-21 12:00:00.000 (device local)
Location: Tokyo
Adjusted date: 2025-06-21 21:00:00.000Z
Time: 21:00
Offset: 540
Lat/Lng: 35.6762, 139.6503
Test #1164
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildFromUser creates birth chart payload
Logs:
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
Test #1165
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildFromUser creates transit chart payload
Logs:
buildTransitDate:
Input date: 2025-06-15 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-15 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
Test #1166
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildFromUser creates synastry payload
Logs:
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
Test #1167
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildFromUser creates composite payload
Logs:
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
Test #1168
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildFromUser creates draconic payload
Logs:
buildTransitDate:
Input date: 2025-06-15 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-15 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
Test #1169
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildFromUser creates progressed payload
Logs:
buildTransitDate:
Input date: 2025-06-15 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-15 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
Test #1170
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildFromUser creates solar return payload
Logs:
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
Test #1171
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildFromUser creates lunar return payload
Logs:
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
Test #1172
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildFromUser creates relocation payload
Logs:
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
Test #1173
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildFromUser creates current planets payload
Logs:
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
Test #1174
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildFromForm creates birth form payload
Logs:
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
Test #1175
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildCurrentPlanets creates payload without birth data
Logs:
buildTransitDate:
Input date: 2025-06-21 12:00:00.000 (device local)
Location: none
Adjusted date: 2025-06-21 12:00:00.000
Time: 12:00
Offset: 0
Lat/Lng: null, null
Test #1176
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildFromUser with sidereal preferences
Logs:
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
Test #1177
[PayloadService]
(unknown) —
SUCCESS
PayloadService buildFromUser getPatterns flag
Logs:
buildTransitDate:
Input date: 2025-01-01 00:00:00.000 (device local)
Location: none
Adjusted date: 2025-01-01 00:00:00.000
Time: 0:00
Offset: 0
Lat/Lng: null, null
Test #1178
[PayloadService]
(unknown) —
SUCCESS
PayloadService ChartPreferences defaults
Test #1179
[ReportResult]
(unknown) —
SUCCESS
ReportResult success factory creates successful result
Test #1180
[ReportResult]
(unknown) —
SUCCESS
ReportResult failure factory creates failed result
Test #1181
[ReportResult]
(unknown) —
SUCCESS
ReportResult asMap returns map when data is Map
Test #1182
[ReportResult]
(unknown) —
SUCCESS
ReportResult asMap returns null when data is not Map
Test #1183
[ReportResult]
(unknown) —
SUCCESS
ReportResult asString returns string when data is String
Test #1184
[ReportResult]
(unknown) —
SUCCESS
ReportResult asString returns null when data is not String
Test #1185
[ReportResult]
(unknown) —
SUCCESS
ReportResult report getter extracts nested report
Test #1186
[ReportResult]
(unknown) —
SUCCESS
ReportResult report getter returns null for non-map data
Test #1187
[ReportResult]
(unknown) —
SUCCESS
ReportResult success with metadata and reportType
Test #1188
[MatrixReportRequest]
(unknown) —
SUCCESS
MatrixReportRequest toJson produces correct structure
Test #1189
[MatrixReportRequest]
(unknown) —
SUCCESS
MatrixReportRequest reportName returns correct name
Test #1190
[MatrixReportRequest]
(unknown) —
SUCCESS
MatrixReportRequest view normalization works
Test #1191
[JournalService deeplink builders]
(unknown) —
SUCCESS
JournalService deeplink builders buildComponentDeeplink basic
Test #1192
[JournalService deeplink builders]
(unknown) —
SUCCESS
JournalService deeplink builders buildComponentDeeplink with hash
Test #1193
[JournalService deeplink builders]
(unknown) —
SUCCESS
JournalService deeplink builders buildComponentDeeplink hash 0 excluded
Test #1194
[JournalService deeplink builders]
(unknown) —
SUCCESS
JournalService deeplink builders buildComponentDeeplink empty hash excluded
Test #1195
[JournalService deeplink builders]
(unknown) —
SUCCESS
JournalService deeplink builders buildChartDeeplink basic
Test #1196
[JournalService deeplink builders]
(unknown) —
SUCCESS
JournalService deeplink builders buildChartDeeplink with transit date
Test #1197
[JournalService deeplink builders]
(unknown) —
SUCCESS
JournalService deeplink builders buildChartDeeplink with relocation
Test #1198
[JournalService deeplink builders]
(unknown) —
SUCCESS
JournalService deeplink builders buildMatrixDeeplink default
Test #1199
[JournalService deeplink builders]
(unknown) —
SUCCESS
JournalService deeplink builders buildMatrixDeeplink with tab
Test #1200
[JournalService deeplink builders]
(unknown) —
SUCCESS
JournalService deeplink builders buildMatrixDeeplink with subcategory
Test #1201
[JournalService deeplink builders]
(unknown) —
SUCCESS
JournalService deeplink builders buildMatrixDeeplink relationship type
Test #1202
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/gpt_service_models_test.dart
Logs:
📋 GROUP: GPTResult.success
📋 GROUP: GPTResult.error
📋 GROUP: GPTBackend interface contract
Test #1203
[JournalService deeplink builders]
(unknown) —
SUCCESS
JournalService deeplink builders buildMatrixDeeplink relationship with params
Test #1204
[JournalService chart helpers]
(unknown) —
SUCCESS
JournalService chart helpers cache management flags
Test #1205
[JournalService chart helpers]
(unknown) —
SUCCESS
JournalService chart helpers cacheDuration default
Test #1206
[Planet]
(unknown) —
SUCCESS
Planet fromJson with full data
Test #1207
[Planet]
(unknown) —
SUCCESS
Planet toJson roundtrips correctly
Test #1208
[Planet]
(unknown) —
SUCCESS
Planet fromJson with null values
Test #1209
[Planet]
(unknown) —
SUCCESS
Planet fromJson with extra containing HumanDesignGate
Test #1210
[GPTResult.success]
(unknown) —
SUCCESS
GPTResult.success sets success=true and content
Logs:
🧪 TEST: sets success=true and content
Test #1211
[PlanetExtra]
(unknown) —
SUCCESS
PlanetExtra fromJson and toJson roundtrip
Test #1212
[GPTResult.success]
(unknown) —
SUCCESS
GPTResult.success accepts optional metadata
Logs:
🧪 TEST: accepts optional metadata
Test #1213
[PlanetExtra]
(unknown) —
SUCCESS
PlanetExtra fromJson with null values
Test #1214
[GPTResult.success]
(unknown) —
SUCCESS
GPTResult.success metadata is null by default
Logs:
🧪 TEST: metadata is null by default
Test #1215
[PlanetReturn]
(unknown) —
SUCCESS
PlanetReturn fromJson and toJson
Test #1216
[GPTResult.error]
(unknown) —
SUCCESS
GPTResult.error sets success=false and error message
Logs:
🧪 TEST: sets success=false and error message
Test #1217
[ExtendedMoonInfo]
(unknown) —
SUCCESS
ExtendedMoonInfo fromJson with full data
Test #1218
[GPTResult.error]
(unknown) —
SUCCESS
GPTResult.error stores detailed error string
Logs:
🧪 TEST: stores detailed error string
Test #1219
[ExtendedMoonInfo]
(unknown) —
SUCCESS
ExtendedMoonInfo toJson roundtrip
Test #1220
[ExtendedMoonInfo]
(unknown) —
SUCCESS
ExtendedMoonInfo fromJson with null values
Test #1221
[MoonInfo]
(unknown) —
SUCCESS
MoonInfo toJson roundtrip
Test #1222
[GPTBackend interface contract]
(unknown) —
SUCCESS
GPTBackend interface contract custom backend can be used via GPTService.use()
Logs:
🧪 TEST: custom backend can be used via GPTService.use()
Test #1223
[MoonDegree]
(unknown) —
SUCCESS
MoonDegree fromJson and toJson
Test #1224
[GPTBackend interface contract]
(unknown) —
SUCCESS
GPTBackend interface contract ask() uses the configured backend
Logs:
🧪 TEST: ask() uses the configured backend
Test #1225
[MoonDegree]
(unknown) —
SUCCESS
MoonDegree fromJson with HD gate
Test #1226
[GPTBackend interface contract]
(unknown) —
SUCCESS
GPTBackend interface contract create() uses the configured backend
Logs:
🧪 TEST: create() uses the configured backend
Test #1227
[NextMoonEvent]
(unknown) —
SUCCESS
NextMoonEvent fromJson full
Test #1228
[NextLunarEvent]
(unknown) —
SUCCESS
NextLunarEvent fromJson full
Test #1229
[GPTBackend interface contract]
(unknown) —
SUCCESS
GPTBackend interface contract analyze() uses the configured backend
Logs:
🧪 TEST: analyze() uses the configured backend
Test #1230
[GPTBackend interface contract]
(unknown) —
SUCCESS
GPTBackend interface contract translate() uses the configured backend
Logs:
🧪 TEST: translate() uses the configured backend
Test #1231
[PlanetHourInfo]
(unknown) —
SUCCESS
PlanetHourInfo fromJson and toJson
Test #1232
[GPTBackend interface contract]
(unknown) —
SUCCESS
GPTBackend interface contract error backend returns error result
Logs:
🧪 TEST: error backend returns error result
Test #1233
[PlanetHour]
(unknown) —
SUCCESS
PlanetHour fromJson and toJson
Test #1234
[BirthForm]
(unknown) —
SUCCESS
BirthForm default values
Test #1235
[BirthForm]
(unknown) —
SUCCESS
BirthForm creation with values
Test #1236
[BirthForm]
(unknown) —
SUCCESS
BirthForm fromJson and toJson
Test #1237
[BirthForm]
(unknown) —
SUCCESS
BirthForm copyWith
Test #1238
[BirthForm]
(unknown) —
SUCCESS
BirthForm equality
Test #1239
[BirthFormState]
(unknown) —
SUCCESS
BirthFormState creation with form and null location
Test #1240
[BirthFormState]
(unknown) —
SUCCESS
BirthFormState creation with location
Test #1241
[BirthFormState]
(unknown) —
SUCCESS
BirthFormState creation with BigThree
Test #1242
[BirthFormState]
(unknown) —
SUCCESS
BirthFormState fromJson
Test #1243
[BigThree]
(unknown) —
ERROR
BigThree creation and serialization
type '_$PlacementImpl' is not a subtype of type 'Map' in type cast
package:astromatrix/models/birth_form.g.dart 46:43 _$$BigThreeImplFromJson
package:astromatrix/models/birth_form.freezed.dart 624:7 new _$BigThreeImpl.fromJson
package:astromatrix/models/birth_form.freezed.dart 468:20 _$BigThreeFromJson
package:astromatrix/models/birth_form.dart 173:7 new BigThree.fromJson
test/services_coverage_test.dart 1547:33 main..
Test #1244
[Placement]
(unknown) —
SUCCESS
Placement creation and formatted getter
Test #1245
[Placement]
(unknown) —
SUCCESS
Placement fromJson and toJson
Test #1246
[Placement]
(unknown) —
SUCCESS
Placement equality
Test #1247
[ComponentResult]
(unknown) —
SUCCESS
ComponentResult success factory
Test #1248
[ComponentResult]
(unknown) —
SUCCESS
ComponentResult failure with error
Test #1249
[ComponentTraits - additional]
(unknown) —
SUCCESS
ComponentTraits - additional fromJson with categories
Test #1250
[ComponentTraits - additional]
(unknown) —
SUCCESS
ComponentTraits - additional getCategory case-insensitive
Test #1251
[ComponentTraits - additional]
(unknown) —
SUCCESS
ComponentTraits - additional toString
Test #1252
[ComponentTraits - additional]
(unknown) —
SUCCESS
ComponentTraits - additional toJson roundtrip
Test #1253
[ComponentTraits - additional]
(unknown) —
SUCCESS
ComponentTraits - additional allCategories returns unmodifiable map
Test #1254
[TraitItem]
(unknown) —
SUCCESS
TraitItem fromJson with value
Test #1255
[TraitItem]
(unknown) —
SUCCESS
TraitItem fromJson without value defaults to empty
Test #1256
[TraitItem]
(unknown) —
SUCCESS
TraitItem toJson
Test #1257
[TraitItem]
(unknown) —
SUCCESS
TraitItem toString
Test #1258
[TarotStats]
(unknown) —
SUCCESS
TarotStats fromJson with TopCards
Test #1259
[TarotStats]
(unknown) —
SUCCESS
TarotStats toJson
Test #1260
[TarotCard - additional]
(unknown) —
SUCCESS
TarotCard - additional fromJson with full data
Test #1261
[TarotCard - additional]
(unknown) —
SUCCESS
TarotCard - additional toJson
Test #1262
[TarotSpread - additional]
(unknown) —
SUCCESS
TarotSpread - additional fromJson with full data
Test #1263
[TarotSpread - additional]
(unknown) —
SUCCESS
TarotSpread - additional fromJson Active field parsing - int
Test #1264
[TarotSpread - additional]
(unknown) —
SUCCESS
TarotSpread - additional fromJson Active field parsing - bool
Test #1265
[TarotSpread - additional]
(unknown) —
SUCCESS
TarotSpread - additional fromJson Active field parsing - String
Test #1266
[TarotSpread - additional]
(unknown) —
SUCCESS
TarotSpread - additional toJson roundtrip
Test #1267
[JournalEntry - additional]
(unknown) —
SUCCESS
JournalEntry - additional fromJson with deeplink
Test #1268
[JournalEntry - additional]
(unknown) —
SUCCESS
JournalEntry - additional fromJson with tarot type
Test #1269
[JournalEntry - additional]
(unknown) —
SUCCESS
JournalEntry - additional toJson preserves fields
Test #1270
[Location]
(unknown) —
SUCCESS
Location creation with all fields
Test #1271
[Location]
(unknown) —
SUCCESS
Location fromJson
Test #1272
[Location]
(unknown) —
SUCCESS
Location toJson roundtrip
Test #1273
[ChartType enum - comprehensive]
(unknown) —
SUCCESS
ChartType enum - comprehensive all chart types have display names
Test #1274
[ChartType enum - comprehensive]
(unknown) —
SUCCESS
ChartType enum - comprehensive all chart types have backend types
Test #1275
[ChartType enum - comprehensive]
(unknown) —
SUCCESS
ChartType enum - comprehensive specific display names
Test #1276
[ChartType enum - comprehensive]
(unknown) —
SUCCESS
ChartType enum - comprehensive specific backend types
Test #1277
[ChartTypeConfig]
(unknown) —
SUCCESS
ChartTypeConfig forType returns config for each type
Test #1278
[ChartTypeConfig]
(unknown) —
SUCCESS
ChartTypeConfig synastry requires date2
Test #1279
[ChartTypeConfig]
(unknown) —
SUCCESS
ChartTypeConfig composite requires date2
Test #1280
[ChartTypeConfig]
(unknown) —
SUCCESS
ChartTypeConfig birth does not require date2
Test #1281
[MatrixType]
(unknown) —
SUCCESS
MatrixType values exist
Test #1282
[MatrixType]
(unknown) —
SUCCESS
MatrixType name property
Test #1283
[MatrixReportNames - comprehensive]
(unknown) —
SUCCESS
MatrixReportNames - comprehensive self map is not empty
Test #1284
[MatrixReportNames - comprehensive]
(unknown) —
SUCCESS
MatrixReportNames - comprehensive relationship map is not empty
Test #1285
[MatrixReportNames - comprehensive]
(unknown) —
SUCCESS
MatrixReportNames - comprehensive getReportName returns name for self type
Test #1286
[MatrixReportNames - comprehensive]
(unknown) —
SUCCESS
MatrixReportNames - comprehensive getReportName returns name for relationship type
Test #1287
[MatrixReportNames - comprehensive]
(unknown) —
SUCCESS
MatrixReportNames - comprehensive getReportName returns null for unknown category
Test #1288
[MatrixReportNames - comprehensive]
(unknown) —
SUCCESS
MatrixReportNames - comprehensive getReportName returns null for unknown view
Test #1289
[MatrixReportNames - comprehensive]
(unknown) —
SUCCESS
MatrixReportNames - comprehensive getAllReports returns correct map
Test #1290
[MatrixReportNames - comprehensive]
(unknown) —
SUCCESS
MatrixReportNames - comprehensive getCategories returns list
Test #1291
[MatrixReportNames - comprehensive]
(unknown) —
SUCCESS
MatrixReportNames - comprehensive isValidCategory works
Test #1292
[MatrixReportNames - comprehensive]
(unknown) —
SUCCESS
MatrixReportNames - comprehensive isValidView works
Test #1293
[UserProfile - additional]
(unknown) —
SUCCESS
UserProfile - additional timezone conversion for PayloadService (hours to minutes)
Test #1294
[UserProfile - additional]
(unknown) —
SUCCESS
UserProfile - additional timezone already in minutes (>= 15)
Test #1295
[UserProfile - additional]
(unknown) —
SUCCESS
UserProfile - additional negative timezone
Test #1296
[ChartPayload - additional]
(unknown) —
SUCCESS
ChartPayload - additional toJson includes all fields
Test #1297
[ChartPayload - additional]
(unknown) —
SUCCESS
ChartPayload - additional ChartDate toJson includes all non-null fields
Test #1298
[ChartResult - comprehensive]
(unknown) —
SUCCESS
ChartResult - comprehensive success factory
Test #1299
[ChartResult - comprehensive]
(unknown) —
SUCCESS
ChartResult - comprehensive failure factory
Test #1300
[ChartResult - comprehensive]
(unknown) —
SUCCESS
ChartResult - comprehensive cached factory
Test #1301
[Esoteric models - additional]
(unknown) —
SUCCESS
Esoteric models - additional HumanDesignGate fromJson/toJson roundtrip
Test #1302
[Esoteric models - additional]
(unknown) —
SUCCESS
Esoteric models - additional LifePath fromJson
Test #1303
[Esoteric models - additional]
(unknown) —
SUCCESS
Esoteric models - additional IChing fromJson
Test #1304
[Esoteric models - additional]
(unknown) —
SUCCESS
Esoteric models - additional Chakra fromJson
Test #1305
[Esoteric models - additional]
(unknown) —
SUCCESS
Esoteric models - additional Pattern fromJson
Test #1306
[Esoteric models - additional]
(unknown) —
SUCCESS
Esoteric models - additional Enneagram fromJson
Test #1307
[Esoteric models - additional]
(unknown) —
SUCCESS
Esoteric models - additional MayanKin fromJson
Test #1308
[Esoteric models - additional]
(unknown) —
SUCCESS
Esoteric models - additional MayanTone fromJson
Test #1309
[Esoteric models - additional]
(unknown) —
SUCCESS
Esoteric models - additional MayanData fromJson
Test #1310
[Esoteric models - additional]
(unknown) —
SUCCESS
Esoteric models - additional Profection fromJson
Test #1311
[Esoteric models - additional]
(unknown) —
SUCCESS
Esoteric models - additional ProfectionYear fromJson
Test #1312
[HoroscopeResponse - additional]
(unknown) —
SUCCESS
HoroscopeResponse - additional fromJson with nested structures
Test #1313
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/astro_helper_test.dart
Test #1314
[PayloadService date formatting]
(unknown) —
SUCCESS
PayloadService date formatting ordinal suffix for 1st
Test #1315
[PayloadService date formatting]
(unknown) —
SUCCESS
PayloadService date formatting ordinal suffix for 2nd
Test #1316
[PayloadService date formatting]
(unknown) —
SUCCESS
PayloadService date formatting ordinal suffix for 3rd
Test #1317
[PayloadService date formatting]
(unknown) —
SUCCESS
PayloadService date formatting ordinal suffix for 11th (special case)
Test #1318
[PayloadService date formatting]
(unknown) —
SUCCESS
PayloadService date formatting ordinal suffix for 12th (special case)
Test #1319
[PayloadService date formatting]
(unknown) —
SUCCESS
PayloadService date formatting ordinal suffix for 13th (special case)
Test #1320
[PayloadService date formatting]
(unknown) —
SUCCESS
PayloadService date formatting ordinal suffix for 21st
Test #1321
[PayloadService date formatting]
(unknown) —
SUCCESS
PayloadService date formatting month names in fullDateStr
Test #1322
[PayloadService date formatting]
(unknown) —
SUCCESS
PayloadService date formatting 12-hour time conversion AM
Test #1323
[AstroHelper - getElement]
(unknown) —
SUCCESS
AstroHelper - getElement returns correct element for each sign
Test #1324
[PayloadService date formatting]
(unknown) —
SUCCESS
PayloadService date formatting 12-hour time conversion PM
Test #1325
[AstroHelper - getElement]
(unknown) —
SUCCESS
AstroHelper - getElement returns empty for unknown sign
Test #1326
[PayloadService date formatting]
(unknown) —
SUCCESS
PayloadService date formatting buildTransitDate fullDateStr format
Logs:
buildTransitDate:
Input date: 2025-12-24 12:09:00.000 (device local)
Location: none
Adjusted date: 2025-12-24 12:09:00.000
Time: 12:09
Offset: 0
Lat/Lng: null, null
Test #1327
[AstroHelper - getModality]
(unknown) —
SUCCESS
AstroHelper - getModality returns correct modality
Test #1328
[AstroHelper - getRuler]
(unknown) —
SUCCESS
AstroHelper - getRuler returns correct ruler
Test #1329
[AstroHelper - getHouseTheme]
(unknown) —
SUCCESS
AstroHelper - getHouseTheme returns theme for valid house 1-12
Test #1330
[AstroHelper - getHouseTheme]
(unknown) —
SUCCESS
AstroHelper - getHouseTheme returns empty for invalid house
Test #1331
[AstroHelper - formatDate]
(unknown) —
SUCCESS
AstroHelper - formatDate formats date correctly
Test #1332
[AstroHelper - formatDateShort]
(unknown) —
SUCCESS
AstroHelper - formatDateShort formats short date
Test #1333
[AstroHelper - isToday]
(unknown) —
SUCCESS
AstroHelper - isToday returns true for today
Test #1334
[AstroHelper - isToday]
(unknown) —
SUCCESS
AstroHelper - isToday returns false for null
Test #1335
[AstroHelper - isToday]
(unknown) —
SUCCESS
AstroHelper - isToday returns false for other date
Test #1336
[AstroHelper - signs]
(unknown) —
SUCCESS
AstroHelper - signs has 12 signs
Test #1337
[AstroHelper - signs]
(unknown) —
SUCCESS
AstroHelper - signs signs are in zodiac order
Test #1338
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/location_test.dart
Test #1339
[Location]
(unknown) —
SUCCESS
Location fromJson deserializes correctly
Test #1340
[Location]
(unknown) —
SUCCESS
Location fromJson handles int lat/lng
Test #1341
[Location]
(unknown) —
SUCCESS
Location toJson round-trip
Test #1342
[LocationSuggestion]
(unknown) —
SUCCESS
LocationSuggestion fromJson deserializes with required fields
Test #1343
[LocationSuggestion]
(unknown) —
SUCCESS
LocationSuggestion fromJson deserializes with optional region and country
Test #1344
[LocationSuggestion]
(unknown) —
SUCCESS
LocationSuggestion fromJson handles int lat/lng
Test #1345
[LocationSuggestion]
(unknown) —
SUCCESS
LocationSuggestion toJson round-trip
Test #1346
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/tarot_deeplink_coverage_test.dart
Test #1347
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper backImageUrl default variant 4
Test #1348
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper backImageUrl variant 3
Test #1349
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper backImageUrl variant other defaults to 4
Test #1350
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper faceImageUrl with empty image returns back
Test #1351
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper faceImageUrl with null image returns back
Test #1352
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper faceImageUrl with full URL returns as-is
Test #1353
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper faceImageUrl with http URL returns as-is
Test #1354
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper faceImageUrl with relative path containing slash
Test #1355
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper faceImageUrl with leading slash
Test #1356
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper faceImageUrl with category and extension
Test #1357
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper faceImageUrl with category without extension
Test #1358
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper faceImageUrl without category with extension
Test #1359
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper faceImageUrl without category without extension
Test #1360
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper faceImageUrl with empty deck defaults to astrotarot
Test #1361
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper faceImageUrl with jpeg extension
Test #1362
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper categoryIconImageUrl builds correct URL
Test #1363
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryName major
Test #1364
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryName wands
Test #1365
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryName pentacles
Test #1366
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryName swords
Test #1367
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryName cups
Test #1368
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryName default
Test #1369
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryByCardName Queen returns Court Cards
Test #1370
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryByCardName King returns Court Cards
Test #1371
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryByCardName Page returns Court Cards
Test #1372
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryByCardName Knight returns Court Cards
Test #1373
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryByCardName Princess returns Court Cards
Test #1374
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryByCardName Prince returns Court Cards
Test #1375
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryByCardName Wands returns Minor Arcana
Test #1376
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryByCardName Pentacles returns Minor Arcana
Test #1377
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryByCardName Cups returns Minor Arcana
Test #1378
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryByCardName Swords returns Minor Arcana
Test #1379
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper getCategoryByCardName major arcana card
Test #1380
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper tarotCategories has 3 entries
Test #1381
[TarotCardHelper]
(unknown) —
SUCCESS
TarotCardHelper tarotDeckStyle contains known decks
Test #1382
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps codeToName has 79 entries (A00-A78)
Test #1383
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps codeToName A00 is The Fool
Test #1384
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps codeToName A01 is Magician
Test #1385
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps codeToName A21 is The World
Test #1386
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps codeToName A78 is King of Cups
Test #1387
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps codeToCategory major arcana
Test #1388
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps codeToCategory minor arcana
Test #1389
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps codeToSuit major arcana has empty suit
Test #1390
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps codeToSuit wands
Test #1391
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps codeToSuit pentacles
Test #1392
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps codeToSuit swords
Test #1393
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps codeToSuit cups
Test #1394
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps nameToCode is reverse of codeToName
Test #1395
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getNameByCode returns name
Test #1396
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getNameByCode unknown returns null
Test #1397
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getCodeByName returns code
Test #1398
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getCodeByName unknown returns null
Test #1399
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getCategoryByCode returns category
Test #1400
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getCategoryByCode unknown returns null
Test #1401
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getSuitByCode returns suit
Test #1402
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getSuitByCode unknown returns null
Test #1403
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getCategoryByName returns category
Test #1404
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getCategoryByName unknown returns null
Test #1405
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getSuitByName returns suit
Test #1406
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getSuitByName unknown returns null
Test #1407
(unknown) —
SUCCESS
loading /home/astromatrix-repo-check/htdocs/repo-check.astromatrix.org/repos/astromatrix-flutter/test/models/astronomical_models_test.dart
Test #1408
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps toRiderWaite converts Princess to Page
Test #1409
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps toRiderWaite converts Prince to Knight
Test #1410
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps toRiderWaite leaves other names unchanged
Test #1411
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps toThoth converts Page to Princess
Test #1412
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps toThoth converts Knight to Prince
Test #1413
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps parseTarotLink extracts code from path
Test #1414
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps parseTarotLink case insensitive
Test #1415
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps parseTarotLink with full URL
Test #1416
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps parseTarotLink with no tarot segment returns null
Test #1417
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps parseTarotLink with tarot as last segment returns null
Test #1418
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getImageUrl returns correct URL for valid code
Test #1419
[Planet]
(unknown) —
SUCCESS
Planet 🧪 TEST: fromJson with all fields
Logs:
🧪 TEST: fromJson with all fields
Test #1420
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getImageUrl with custom deck
Test #1421
[Planet]
(unknown) —
SUCCESS
Planet 🧪 TEST: fromJson with extra (PlanetExtra)
Logs:
🧪 TEST: fromJson with extra (PlanetExtra)
Test #1422
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps getImageUrl throws for invalid code
Test #1423
[Planet]
(unknown) —
SUCCESS
Planet 🧪 TEST: fromJson with null fields
Logs:
🧪 TEST: fromJson with null fields
Test #1424
[Planet]
(unknown) —
SUCCESS
Planet 🧪 TEST: toJson roundtrip
Logs:
🧪 TEST: toJson roundtrip
Test #1425
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps all 79 codes have names
Test #1426
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps all 79 codes have categories
Test #1427
[PlanetExtra]
(unknown) —
SUCCESS
PlanetExtra 🧪 TEST: fromJson with HumanDesignGate
Logs:
🧪 TEST: fromJson with HumanDesignGate
Test #1428
[TarotMaps]
(unknown) —
SUCCESS
TarotMaps all 79 codes have suit entries
Test #1429
[ComponentDeepLinkHandler]
(unknown) —
SUCCESS
ComponentDeepLinkHandler resolve with valid planet deep link
Test #1430
[PlanetExtra]
(unknown) —
SUCCESS
PlanetExtra 🧪 TEST: toJson roundtrip
Logs:
🧪 TEST: toJson roundtrip
Test #1431
[ComponentDeepLinkHandler]
(unknown) —
SUCCESS
ComponentDeepLinkHandler resolve with sign deep link
Test #1432
[PlanetReturn]
(unknown) —
SUCCESS
PlanetReturn 🧪 TEST: fromJson and toJson
Logs:
🧪 TEST: fromJson and toJson
Test #1433
[ComponentDeepLinkHandler]
(unknown) —
SUCCESS
ComponentDeepLinkHandler resolve with house deep link
Test #1434
[ComponentDeepLinkHandler]
(unknown) —
SUCCESS
ComponentDeepLinkHandler resolve with too few segments returns null
Logs:
Component deep link requires at least 2 segments
Test #1435
[ExtendedMoonInfo]
(unknown) —
SUCCESS
ExtendedMoonInfo 🧪 TEST: fromJson with all sub-models
Logs:
🧪 TEST: fromJson with all sub-models
Test #1436
[ExtendedMoonInfo]
(unknown) —
SUCCESS
ExtendedMoonInfo 🧪 TEST: toJson roundtrip
Logs:
🧪 TEST: toJson roundtrip
Test #1437
[ComponentDeepLinkHandler]
(unknown) —
SUCCESS
ComponentDeepLinkHandler resolve with only type (no id)
Test #1438
[ComponentDeepLinkHandler]
(unknown) —
SUCCESS
ComponentDeepLinkHandler resolve with query parameters preserved
Test #1439
[MoonInfo]
(unknown) —
SUCCESS
MoonInfo 🧪 TEST: fromJson with all fields
Logs:
🧪 TEST: fromJson with all fields
Test #1440
[ShareDeepLinkHandler]
(unknown) —
SUCCESS
ShareDeepLinkHandler resolve tarot share link
Logs:
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/tarot?spreadIndex=3&question=future
ShareDeepLinkHandler.resolve - Segments: [share, tarot]
ShareDeepLinkHandler: Share type: tarot
ShareDeepLinkHandler: Query params: {spreadIndex: 3, question: future}
ShareDeepLinkHandler: Query string: spreadIndex=3&question=future
ShareDeepLinkHandler: Resolved: https://astromatrix.app/share/tarot?spreadIndex=3&question=future → /tarot?spreadId=3&question=future
Test #1441
[MoonDegree]
(unknown) —
SUCCESS
MoonDegree 🧪 TEST: fromJson and toJson
Logs:
🧪 TEST: fromJson and toJson
Test #1442
[ShareDeepLinkHandler]
(unknown) —
SUCCESS
ShareDeepLinkHandler resolve tarot share link with deck
Logs:
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/tarot?spreadIndex=1&deck=rider
ShareDeepLinkHandler.resolve - Segments: [share, tarot]
ShareDeepLinkHandler: Share type: tarot
ShareDeepLinkHandler: Query params: {spreadIndex: 1, deck: rider}
ShareDeepLinkHandler: Query string: spreadIndex=1&deck=rider
ShareDeepLinkHandler: Resolved: https://astromatrix.app/share/tarot?spreadIndex=1&deck=rider → /tarot?spreadId=1&deck=rider
Test #1443
[NextMoonEvent]
(unknown) —
SUCCESS
NextMoonEvent 🧪 TEST: fromJson with all fields
Logs:
🧪 TEST: fromJson with all fields
Test #1444
[ShareDeepLinkHandler]
(unknown) —
SUCCESS
ShareDeepLinkHandler resolve chart share link
Logs:
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/chart?type=birthchart&u1Name=Test
ShareDeepLinkHandler.resolve - Segments: [share, chart]
ShareDeepLinkHandler: Share type: chart
ShareDeepLinkHandler: Query params: {type: birthchart, u1Name: Test}
ShareDeepLinkHandler: Query string: type=birthchart&u1Name=Test
ShareDeepLinkHandler: Resolved: https://astromatrix.app/share/chart?type=birthchart&u1Name=Test → /chartview?type=birthchart&u1Name=Test
Test #1445
[NextMoonEvent]
(unknown) —
SUCCESS
NextMoonEvent 🧪 TEST: toJson roundtrip
Logs:
🧪 TEST: toJson roundtrip
Test #1446
[NextLunarEvent]
(unknown) —
SUCCESS
NextLunarEvent 🧪 TEST: fromJson and toJson
Logs:
🧪 TEST: fromJson and toJson
Test #1447
[PlanetHourInfo]
(unknown) —
SUCCESS
PlanetHourInfo 🧪 TEST: fromJson with planet hours list
Logs:
🧪 TEST: fromJson with planet hours list
Test #1448
[ShareDeepLinkHandler]
(unknown) —
SUCCESS
ShareDeepLinkHandler resolve chart share with multiple params
Logs:
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/chart?type=synastry&u1Name=A&u2Name=B&houseSystem=P
ShareDeepLinkHandler.resolve - Segments: [share, chart]
ShareDeepLinkHandler: Share type: chart
ShareDeepLinkHandler: Query params: {type: synastry, u1Name: A, u2Name: B, houseSystem: P}
ShareDeepLinkHandler: Query string: type=synastry&u1Name=A&u2Name=B&houseSystem=P
ShareDeepLinkHandler: Resolved: https://astromatrix.app/share/chart?type=synastry&u1Name=A&u2Name=B&houseSystem=P → /chartview?type=synastry&u1Name=A&u2Name=B&houseSystem=P
Test #1449
[PlanetHourInfo]
(unknown) —
SUCCESS
PlanetHourInfo 🧪 TEST: toJson roundtrip
Logs:
🧪 TEST: toJson roundtrip
Test #1450
[ShareDeepLinkHandler]
(unknown) —
SUCCESS
ShareDeepLinkHandler resolve component share link
Logs:
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/component?type=planet&name=Sun
ShareDeepLinkHandler.resolve - Segments: [share, component]
ShareDeepLinkHandler: Share type: component
ShareDeepLinkHandler: Query params: {type: planet, name: Sun}
ShareDeepLinkHandler: Query string: type=planet&name=Sun
ShareDeepLinkHandler: Resolved: https://astromatrix.app/share/component?type=planet&name=Sun → /component?type=planet&name=Sun
Test #1451
[PlanetHour]
(unknown) —
SUCCESS
PlanetHour 🧪 TEST: fromJson and toJson
Logs:
🧪 TEST: fromJson and toJson
Test #1452
[ShareDeepLinkHandler]
(unknown) —
SUCCESS
ShareDeepLinkHandler resolve unknown share type returns null
Logs:
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/unknown?key=value
ShareDeepLinkHandler.resolve - Segments: [share, unknown]
ShareDeepLinkHandler: Share type: unknown
ShareDeepLinkHandler: Query params: {key: value}
ShareDeepLinkHandler: Query string: key=value
ShareDeepLinkHandler: Unknown share type: unknown
ShareDeepLinkHandler: Failed to convert params for type: unknown
Test #1453
[ShareDeepLinkHandler]
(unknown) —
SUCCESS
ShareDeepLinkHandler resolve with no query params returns null
Logs:
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/tarot
ShareDeepLinkHandler.resolve - Segments: [share, tarot]
ShareDeepLinkHandler: Share type: tarot
ShareDeepLinkHandler: Query params: {}
ShareDeepLinkHandler: Query string:
ShareDeepLinkHandler: No query parameters found in share URL
ShareDeepLinkHandler: Full URI: https://astromatrix.app/share/tarot
Test #1454
[ShareDeepLinkHandler]
(unknown) —
SUCCESS
ShareDeepLinkHandler resolve tarot without spreadIndex returns null
Logs:
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/tarot?question=test
ShareDeepLinkHandler.resolve - Segments: [share, tarot]
ShareDeepLinkHandler: Share type: tarot
ShareDeepLinkHandler: Query params: {question: test}
ShareDeepLinkHandler: Query string: question=test
ShareDeepLinkHandler: Missing spreadIndex in tarot share params
ShareDeepLinkHandler: Failed to convert params for type: tarot
Test #1455
[ShareDeepLinkHandler]
(unknown) —
SUCCESS
ShareDeepLinkHandler resolve chart without type returns null
Logs:
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share/chart?u1Name=Test
ShareDeepLinkHandler.resolve - Segments: [share, chart]
ShareDeepLinkHandler: Share type: chart
ShareDeepLinkHandler: Query params: {u1Name: Test}
ShareDeepLinkHandler: Query string: u1Name=Test
ShareDeepLinkHandler: Missing type in chart share params
ShareDeepLinkHandler: Failed to convert params for type: chart
Test #1456
[ShareDeepLinkHandler]
(unknown) —
SUCCESS
ShareDeepLinkHandler resolve with no share segment returns null
Logs:
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/other/path
ShareDeepLinkHandler.resolve - Segments: [other, path]
ShareDeepLinkHandler: "share" not found in segments or no type after it
Test #1457
[ShareDeepLinkHandler]
(unknown) —
SUCCESS
ShareDeepLinkHandler resolve with share as last segment returns null
Logs:
ShareDeepLinkHandler.resolve - URL: https://astromatrix.app/share
ShareDeepLinkHandler.resolve - Segments: [share]
ShareDeepLinkHandler: "share" not found in segments or no type after it
Test #1458
[ImageDisplayConfig]
(unknown) —
SUCCESS
ImageDisplayConfig standard config values
Test #1459
[ImageDisplayConfig]
(unknown) —
SUCCESS
ImageDisplayConfig tarot config values
Test #1460
[ImageDisplayConfig]
(unknown) —
SUCCESS
ImageDisplayConfig planetIcon config values
Test #1461
[ImageDisplayConfig]
(unknown) —
SUCCESS
ImageDisplayConfig signIcon config values
Test #1462
[ImageDisplayConfig]
(unknown) —
SUCCESS
ImageDisplayConfig custom config
Test #1463
[ImageUrlResult]
(unknown) —
SUCCESS
ImageUrlResult creation
Test #1464
[ComponentImageHelper]
(unknown) —
SUCCESS
ComponentImageHelper isTarotCategory returns true for tarot categories
Test #1465
[ComponentImageHelper]
(unknown) —
SUCCESS
ComponentImageHelper isTarotCategory returns false for non-tarot
Test #1466
[ComponentImageHelper]
(unknown) —
SUCCESS
ComponentImageHelper getDisplayConfig for tarot
Logs:
🎨 Getting display config for category: Tarot
→ Using tarot config (height: 400, no border)
Test #1467
[ComponentImageHelper]
(unknown) —
SUCCESS
ComponentImageHelper getDisplayConfig for Planets
Logs:
🎨 Getting display config for category: Planets
→ Using planet icon config
Test #1468
[ComponentImageHelper]
(unknown) —
SUCCESS
ComponentImageHelper getDisplayConfig for Signs
Logs:
🎨 Getting display config for category: Signs
→ Using sign icon config
Test #1469
[ComponentImageHelper]
(unknown) —
SUCCESS
ComponentImageHelper getDisplayConfig for Zodiac Signs
Logs:
🎨 Getting display config for category: Zodiac Signs
→ Using sign icon config
Test #1470
[ComponentImageHelper]
(unknown) —
SUCCESS
ComponentImageHelper getDisplayConfig for unknown category
Logs:
🎨 Getting display config for category: Custom Category
→ Using standard config (height: 200)
Test #1471
[ComponentImageHelper]
(unknown) —
SUCCESS
ComponentImageHelper getImageUrl with empty path returns empty
Logs:
🖼️ ComponentImageHelper.getImageUrl CALLED
imagePath: ""
category: "Zodiac Planets"
componentName: "null"
❌ Empty imagePath - returning empty string
Test #1472
[ComponentImageHelper]
(unknown) —
SUCCESS
ComponentImageHelper getFullImageUrl with empty path returns empty
Logs:
🖼️ ComponentImageHelper.getFullImageUrl CALLED
❌ Empty imagePath - returning empty string
Test #1473
[ComponentImageHelper]
(unknown) —
SUCCESS
ComponentImageHelper getImageUrl with full URL returns as-is
Logs:
🖼️ ComponentImageHelper.getImageUrl CALLED
imagePath: "https://example.com/full.jpg"
category: "Zodiac Planets"
componentName: "null"
📦 STANDARD COMPONENT - category: Zodiac Planets
🔧 _buildStandardImageUrl: path="https://example.com/full.jpg", useSuffix=false
↩️ Already full URL, returning as-is
📦 Final standard URL: https://example.com/full.jpg
Test #1474
[ComponentImageHelper]
(unknown) —
SUCCESS
ComponentImageHelper getImageUrlWithConfig returns both url and config for non-tarot
Logs:
🖼️ ComponentImageHelper.getImageUrl CALLED
imagePath: "https://example.com/img.jpg"
category: "Planets"
componentName: "null"
📦 STANDARD COMPONENT - category: Planets
🔧 _buildStandardImageUrl: path="https://example.com/img.jpg", useSuffix=false
↩️ Already full URL, returning as-is
📦 Final standard URL: https://example.com/img.jpg
🎨 Getting display config for category: Planets
→ Using planet icon config
Test #1475
[ComponentImageHelper]
(unknown) —
SUCCESS
ComponentImageHelper getImageUrlWithConfig returns standard config for unknown
Logs:
🖼️ ComponentImageHelper.getImageUrl CALLED
imagePath: "https://example.com/img.jpg"
category: "Unknown Category"
componentName: "null"
📦 STANDARD COMPONENT - category: Unknown Category
🔧 _buildStandardImageUrl: path="https://example.com/img.jpg", useSuffix=false
↩️ Already full URL, returning as-is
📦 Final standard URL: https://example.com/img.jpg
🎨 Getting display config for category: Unknown Category
→ Using standard config (height: 200)
Test #1476
[ComponentImageHelper]
(unknown) —
SUCCESS
ComponentImageHelper getIconUrl delegates to getImageUrl
Logs:
🖼️ ComponentImageHelper.getIconUrl CALLED
🖼️ ComponentImageHelper.getImageUrl CALLED
imagePath: "https://example.com/icon.jpg"
category: "Zodiac Planets"
componentName: "null"
📦 STANDARD COMPONENT - category: Zodiac Planets
🔧 _buildStandardImageUrl: path="https://example.com/icon.jpg", useSuffix=false
↩️ Already full URL, returning as-is
📦 Final standard URL: https://example.com/icon.jpg
Test #1477
[GenericHelperMethods]
(unknown) —
SUCCESS
GenericHelperMethods clean removes special characters