BotTester icon indicating copy to clipboard operation
BotTester copied to clipboard

Add support for additional test libraries

Open microsoftly opened this issue 7 years ago • 11 comments

If you want support added for a library that we don't already support, please comment below. We will also happily accept PRs.

Once a new test library is accepted, I will open up a new issue to track it

microsoftly avatar Aug 28 '17 20:08 microsoftly

@microsoftly Any ideas on how to implement this ? For example, we are using jest. The syntax is some how different from chai.

I was thinking of being able to pass the function to do the expectation but I'm not sure if that can work.

bilby91 avatar Aug 30 '17 19:08 bilby91

@bilby91 all expectations are done in ExpectedMesage.ts. We also know the expectations that are going to be run (just based off the current ones).

All we need to do is encapsulate the current expectation calls in some other class or function that picks the correct framework. This part is rather clear.

The less clear part is how to register which framework to use.

microsoftly avatar Aug 30 '17 19:08 microsoftly

Good. I like the idea. So, we are going to support different frameworks in a static way then. We will need to push code in order to support new frameworks right?

What do you think about a global property that defines de framework?

bilby91 avatar Aug 30 '17 19:08 bilby91

I think that's not bad. Following something like karma's approach would be decent. Globals in a config file and or env variables. It would also help with #10

microsoftly avatar Aug 30 '17 20:08 microsoftly

Good. I will implement this in the next days. Will add jest as the second test framework :)

bilby91 avatar Aug 30 '17 20:08 bilby91

Hi,

Any chance you can look at Ava's assertion library?

Whilst currently it's possible to use Ava and rely on Chai by telling Ava to not fail in the absence of it's own assertions it means we get huge Chai stack traces and means we can't use test planning.

benswinburne avatar Jan 23 '18 14:01 benswinburne

@benswinburne It shouldn't be hard to add it. I think that beside of obviously adding the AvaExpectation class we need to remove the hard dependencies plus make conditional importing. Something that we had in the past and then was removed (I think).

bilby91 avatar Jan 23 '18 15:01 bilby91

@bilby91 @benswinburne I've extended the library to be able to toggle between assertion libraries based on config or options. It's currently on the dev branch.

I've opened up a new ticket specifically for the ava task. I can take it on, though I'd be happy to accept work from either of you or reviews of what I submit.

microsoftly avatar Jan 25 '18 15:01 microsoftly

Can you point into the commit that does the change @microsoftly ?

bilby91 avatar Jan 25 '18 15:01 bilby91

@bilby91 https://github.com/microsoftly/BotTester/commit/0a050c72ec98771657fd456455a7b812879d7e54

I tested locally to ensure the config/options would switch frameworks. I'm not going to commit anything until I have an implementation in place.

microsoftly avatar Jan 25 '18 17:01 microsoftly

@benswinburne @bilby91 ava support added, see #60

(it's a bit of a hack, but it allows users to run with ava)

microsoftly avatar Feb 01 '18 02:02 microsoftly