[keycloak-dev] Javascript adapater tests
Guillaume Vincent
gvincent at redhat.com
Wed Jan 16 12:58:33 EST 2019
> Coverage is what matters.
I like to tests features and add regression tests for each bugs.
Coverage is not a good metric, you can call your function with no
assertion, you will have 100% code coverage.
But I think we are agree that every function in the adapter (init(),
login() refreshToken(), etc) should be tested.
> should be written in TypeScript.
Totally agree, as I said I created the experience in a couple of hours.
But yes JS adapter should be written in typescript
I see 2 strategies to implement tests and upgrade the JS adapter:
1/ write a new lib in Typescript near the old one, add some tests for
every function and test new and old implementation together with automated
tests.
2/ split actual code (each method in a file for example) set up a blunder
to build the js adapter and then add unit and functional tests one by one
for every function. Then migrate code to Typescript
I can try a POC on the first one if you want
On Wed, Jan 16, 2019 at 5:43 PM Stan Silvert <ssilvert at redhat.com> wrote:
> On 1/16/2019 9:53 AM, Guillaume Vincent wrote:
> > Hello Keycloak dev list,
> >
> > in a previous post I raised the problem that the JavaScript adapter did
> not
> > have JavaScript tests.
> >
> > In a couple of hours I created a simple example for Keycloak with unit
> and
> > functional tests https://github.com/guillaumevincent/keycloak-lite
> >
> > You can see tests in this file
> > https://github.com/guillaumevincent/keycloak-lite/blob/master/test.js
> >
> > I also created a blog post on IMO How to test JavaScript code:
> > https://guillaumevincent.com/2019/01/15/test-in-javascript.html
> >
> > Maybe we can open the discussion on how keycloak.js should be tested.
> > Without any fast and automated tests, in JavaScript, the refactor of the
> > keycloak adapter will not be easy at all.
> >
> > wdyt?
> Several thoughts:
>
> * Basically, I agree. It makes sense to test javascript with
> javascript. I like where you are going with this.
> * An important point in any discussion of testing is that the only
> useful test is a test that uncovers a bug. We never write tests
> just to say we have lots of tests. Coverage is what matters. I'm
> not criticizing your blog. It's just something I like to keep in mind.
> * You mention TypeScript in your blog, but test.js appears to be
> written in plain javascript. IMO, any javascript we write (with the
> possible exception of keycloak.js) should be written in TypeScript.
> Both internally and externally, developers are moving more and more
> to TypeScript. Also, the Java developers on our team will be much
> more comfortable and confident with a strongly typed language that
> works well with an IDE.
> * We need to know a little more about the current test coverage of the
> javascript adapter. Much of it is tested through indirect means.
> * We need to understand how javascript tests will integrate into our
> builds.
> * We need to standardize on a javascript test package. I don't want
> the adapter to be tested with one library while the new account
> management console is tested with another.
>
>
>
> _______________________________________________
> keycloak-dev mailing list
> keycloak-dev at lists.jboss.org
> https://lists.jboss.org/mailman/listinfo/keycloak-dev
--
Guillaume Vincent
Senior Software Engineer
More information about the keycloak-dev
mailing list