Releases: passsy/spot
Releases · passsy/spot
v0.17.0
- Timeline is now generated with Jaspr #76
- New:
act.tapAt()#80 - New
Timeline.addEvent()now returns theTimelineEventId id - New
Timeline.updateEvent(id)andTimeline.removeEvent(id) - Fix: Added events to timeline while being
off#88 - Fix: Export
stateProp#93 - Improved screenshot detail page in timeline #91, #92
v0.16.0
- Add
snapshotState<S>()
final state = spot<MyContainer>().snapshotState<MyContainerState>() - Add
snapshotRenderBox() - Export
WidgetPresence - Add
@useResultto.atMost(N),.atLeast(N),.amount(N)and.existsAtMostNTimes(N)to prevent missing assertions - Fix
existsAtLeastNTimesdumping the widget tree to console - Fix image rendering with
TimelineMode.always - Add Timeline to
/README.md - Add
actto/README.md
v0.15.0
- Add
loadAppFonts()to display your app fonts on screenshots #66 - Add
loadFont()to load a fonts from a file. Useful when your app depends on preinstalled system fonts (loadFont('Comic Sans', [r'C:\Windows\Fonts\comic.ttf'])) #66 - New direct access to properties from
WidgetSelector#71spot<MyWidget>().getWidgetProp(widgetProp('color', (widget) => widget.color));spot<_MyContainer>().getStateProp(stateProp<String, _MyContainerState>('innerValue', (s) => s.innerValue));spot<_MyContainer>().getRenderObjectProp(renderObjectProp<Size, RenderBox>('size', (r) => r.size));
- New
getStatePropandstatePropto access state properties #71
spot<_MyContainer>().existsOnce().getStateProp(stateProp('innerValue', (_MyContainerState s) => s.innerValue)); - New
timelinemodeTimelineMode.alwaysto always print a timeline after each test #68 - Deprecate
TimelineMode.recordin favor ofTimelineMode.reportOnError(which is the default) #68 - Timeline now shows partial tap warnings #69
- Never show big widget tree dumps in console, only in Timeline HTML report #70
act.tap()now shows a Crosshair on the screenshot- Fix code samples of
whereWidgetProp(),whereElementProp()andwhereRenderObjectProp()#67
v0.14.0
- New: Timeline! Failing tests now print a timeline with screenshots of all interactions (actions and assertions) as HTML report #57
act.tapnow checks for multiple tappable position when the center is not tappable for some reason #60act.tapnow reports a useful error when the widget is 0px/0px or invisible #61- Become Compatible with Flutter 3.27 and add nightly tests against
master
v0.13.0
v0.12.1
v0.4.3
v0.3.3
v0.12.0
- Breaking
Offstagesupport. By defaultOffstagewidgets are not found byspot<W>(). UsespotOffstage().spot<W>()to find them.spotAllWidgets()returns onstage and offstage widgets. Use.overrideWidgetPresence(WidgetPresence.offstage)to modify aWidgetSelectorto search foroffstage,onstageorcombined#45 - New:
act.enterText(spot<TextField>(), 'Hello World!')allows to enter text into aEditableText#51 - Negating parents is not yet supported (
spot<ListView>().withParent(spot<Scaffold>().atMost(0))). It now throws to prevent unexpected behavior. #50 act.tap(spot<ElevatedButton>())now pumps automatically after the tap #52