Test Applications On The Edge (TAOTE)

Hi,

I was not on any meds when I thought of this. So an idea is an idea, but you could say It's a bad one. without further ado, here is my baby library: GitHub - bacloud22/TAOTE · GitHub

A nice demo here: https://hail-tango-zxn3c.ship.place/
Kindly.

These mechanisms look quite useful to me, but you could make it easier for reviewers if you posted here a brief summary of what this library does.

2 Likes

Thank you for your response David,

It tries to simulate streams in a Linear Time Logic (LTL) fashion (but not only, that was my inspiration), pushing a developer to think in such powerful pattern, I thought we can reason about many things this way for instance:

keep logging when event is of type "warn", until event is of type "error" then alert

This is an expression of logic over time, known as the "UNTIL" operand in LTL.

It also tries to simulate the closed world assumption lets think of another context, we reason generally about finite data / events; but what about probabilistic / infinite data. If we are testing where a stream always returns even numbers, in a real world / computer the app could crash for any reason, would we say true of false if a stream returns 1000 even numbers then the app crashes; In this example I suggest (under the closed world assumption)

every([0, 2, 4, 6, 8, 10, ┴], (e) => (e % 2 != 0)) // true

Otherwise, I thought the README was sufficient, but yes I agree so that was the context.

I made a mistake in my example for the UNTIL operation. It resolves to a boolean and not an action. (developer could add an action, but the definition of UNTIL returns a boolean).

We can say, a developer testing if the following behavior of the app holds:

We normally receive daily .csv files, but from the moment the external API gives us the new .xsls format, we must no longer recieve the old .csv

File_received_is_csv UNTIL File_received_is_xsls