google / pageloader

A framework for creating page objects for in-browser or WebDriver tests.
https://pub.dartlang.org/packages/pageloader
Apache License 2.0
40 stars 46 forks source link

Release 3.0.0-beta #130

Closed kevmoo closed 6 years ago

kevmoo commented 6 years ago

Any there specific items we should validate before we release?

Sanity check w/ @chalin ?

CC @mk13

Let's make sure to discuss before we do this...

chalin commented 6 years ago

I'm working on the conversion of all of the component tests for all the Angular example apps. That would certainly be a good basis for validation. I can post here once I'm done.

kevmoo commented 6 years ago

Awesome!

On Mon, May 14, 2018 at 4:46 PM Patrice Chalin notifications@github.com wrote:

I'm working on the conversion of all of the component tests for all the Angular example apps. That would certainly be a good basis for validation. I can post here once I'm done.

— You are receiving this because you authored the thread. Reply to this email directly, view it on GitHub https://github.com/google/pageloader/issues/130#issuecomment-388997508, or mute the thread https://github.com/notifications/unsubscribe-auth/AABCilT2FvJGkXMwDWJq5DSYkfRIF-Gbks5tyhdegaJpZM4T-ldW .

chalin commented 6 years ago

The pageloader-builder-generated *.g.dart files get written to the original source folder. Can we ensure that they are instead saved where ever the Angular *.template.dart files are saved (which includes the build output folder when it is specified)?

Maybe this has to do with the use of part of "foo.g.dart". That is another thing that Angular is able to avoid. It is a lot more convenient to be able to import "foo.g.dart" as bar to avoid errors from tools even when the .g.dart file isn't present.

cc @natebosch @kwalrath

chalin commented 6 years ago

Btw, how about releasing 3.0.0-alpha first. That way I'll be able to pickup the package from pub, and be able to test links into the API docs.

kevmoo commented 6 years ago

how about releasing 3.0.0-alpha first

@chalin – are you ready for an alpha release? Does the code as-is seem to work?

mk13 commented 6 years ago

The pageloader-builder-generated .g.dart files get written to the original source folder. Can we ensure that they are instead saved where ever the Angular .template.dart files are saved (which includes the build output folder when it is specified)?

Maybe this has to do with the use of part of "foo.g.dart". That is another thing that Angular is able to avoid. It is a lot more convenient to be able to import "foo.g.dart" as bar to avoid errors from tools even when the .g.dart file isn't present.

It's technically possible for users to avoid writing the factory MyPO.create(PageLoaderElement context) in the boilerplate to avoid the need for part directive. Then the user can do something like:

import 'my_po.g.dart';

// ...

final po = new $MyPO.create(context)

If we emulate something similar as: import "foo.g.dart" as bar similar to how *.template.dart does it, that could also theoretically work, but the way I see it - having to always remember to add a bar prefix to use the PageObject is about the same level of annoyance of having to write a single part directive at the top of the page object dart file.

For the alpha release, I think we can stay with this style.

Btw, how about releasing 3.0.0-alpha first. That way I'll be able to pickup the package from pub, and be able to test links into the API docs.

I'm currently working on some fixes flagged internally that would be issues with Dart 2. I'll submit this pull request sometime today as well as a small feature request regarding matchers. Once done, I think we can release the alpha.

chalin commented 6 years ago

I'm ok with sticking to this approach for the alpha release. I'd prefer using import ... as po for the release after that.

bar prefix to use the PageObject is about the same level of annoyance of having to write a single part directive at the top of the page object dart file.

The main problem with the workflow when using the part approach is that the IDE complains about $MyPO.create(...) until I'm able to successfully build at least once. It is easier to use importfoo_po.g.dartas po; along with uri_has_not_been_generated set to ignore to silence the IDE false errors.

chalin commented 6 years ago

Status update for today: I've successfully converted 5 of the 7 example app projects that have component tests. The one with the largest test suite is toh-5: you can see the file changes in this commit (or view the entire PR). I'll complete the conversion tomorrow.

Btw, it's great to be able to drop the unnecessary async-ness!

chalin commented 6 years ago

Status update: all projects have been successfully converted to use pageloader 3-dev (albeit with a dependency_override for the example using ACX -- for details, see https://github.com/dart-lang/angular_components/issues/263.)

kevmoo commented 6 years ago

@mk13 – are we ready to call beta here?

mk13 commented 6 years ago

I'm finishing up one more requested feature, then we can announce the beta. ETA sometime this week.

mk13 commented 6 years ago

Released! The next release will be v3.0.0. Some upcoming key changes will be: