// Copyright 2020 The Flutter team. All rights reserved.
// Use of this source code is governed by a BSD-style license that can be
// found in the LICENSE file.

import 'package:animations/src/misc/animated_positioned.dart';
import 'package:flutter/material.dart';
import 'package:flutter_test/flutter_test.dart';

Widget createAnimatedPositionedDemoScreen() => const MaterialApp(
      home: AnimatedPositionedDemo(),
    );

void main() {
  group('AnimatedPositioned Tests', () {
    testWidgets('Position of Button Changes on Tap', (tester) async {
      await tester.pumpWidget(createAnimatedPositionedDemoScreen());

      var button = find.byType(InkWell);

      // Get initial position of the widget.
      var initialPosition = tester.getTopLeft(button);
      expect(initialPosition, isNotNull);

      // Tap on the widget.
      await tester.tap(button);
      await tester.pumpAndSettle();

      // The new position should not be equal to initial position.
      var newPosition = tester.getTopLeft(button);
      expect(newPosition, isNot(offsetMoreOrLessEquals(initialPosition)));
    });
  });
}