Coffee Corner Discussions
Get to know other SAP Community members during your coffee break. Join discussions on a variety of topics in a casual environment.
cancel
Showing results for 
Search instead for 
Did you mean: 

SAP Community Code Challenge - Testing UI5 Apps with wdi5

nicoschoenteich
Developer Advocate
Developer Advocate
We have a new code challenge for you as part of the Community Spotlight for the month of June. This time it's about testing UI5 apps with wdi5. Check out the corresponding blog post explaining all the details of the challenge, how to take part, and how to submit your entry.

This thread is the place to share your experience with the challenge and what kind of app you are building. Feel free to ask any questions (technical or non-technical) and leave your comments. Also feel free to post a link to your pull request as your challenge entry.

We are very much looking forward to your ideas and contributions! 😃
46 REPLIES 46

marianzeis
Discoverer

My Entry with a minimal app to pass tests for week1, nothing fancy 🙂

https://github.com/SAP-samples/sap-community-code-challenge-ui5/pull/7

nicoschoenteich
Developer Advocate
Developer Advocate

I also submitted my entry for week1, who can guess what kind of app I am planning to build? Any golf fans out here? ️🏌🏼‍

https://github.com/SAP-samples/sap-community-code-challenge-ui5/pull/8

enric101
Active Contributor

My pull request is ready after passing all the tests, all in green!

https://github.com/SAP-samples/sap-community-code-challenge-ui5/pull/9

Thanks!

nailspahija
Explorer

Here is my Pull Request for my very simple ui5 app. 😃

https://github.com/SAP-samples/sap-community-code-challenge-ui5/pull/17

0 Kudos

Pull request updated for week2 code challenge

Former Member

Hi colleagues! Thanks for the great challenge 👍

Please, find my entry here: https://github.com/SAP-samples/sap-community-code-challenge-ui5/pull/16

rb
Active Participant

Hi,

We can use the same pull request right?

Is there a way to reduce the output of npm run ci-tests? Loglevel in config did not seem to do much,

As a wish for the next week I would prefer some test cases which are more Fiori Floor Plan oriented. In week 2 the additional Button to navigation is not really best practice if we start with a list 🙂

nicoschoenteich
Developer Advocate
Developer Advocate

Hi there!

Sorry for the late reply.

Yes, you can use the same PR. 
There are two places in the wdio.conf.js where you have to set the logLevel (one global config and one wdi5 specific), make sure you set them both to 'silent'.
Thanks a lot for your suggestions and feedback. You are right, the app we are building here doesn't follow best practices. It was more important to us that it was 'easy to start with' and that people would get familiar with wdi5 in the first place, and I think that was achieved 😉 

Pull request updated for week2 

Updated for week 3... not sure where this thing is going. I hope to see some back & forth navigation testing for duplicate IDs 😉

former_member10326
Product and Topic Expert
Product and Topic Expert

Interesting idea with the todo list, let's see if you'll tick all the boxes 😉

0 Kudos

Week 2 submitted

 

ArnaudBuchholz
Advisor
Advisor

I wouldn't use control.firePress() to simulate a user click. Some controls expect parameters in the firePress internal UI5 method. Why not using .click instead and let UI5 fill these parameters ?

I agree.

0 Kudos

Hi @ArnaudBuchholz, good idea, thanks for the suggestion. There is also a press() method provided by wdi5 that calls click() under the hood so you can use it on combination with wdi5 selectors (see wdi5 documentation). I will keep this in mind for future projects 🤙

former_member5334
Participant
0 Kudos

Hi @nicoschoenteich 

Week 1,2,3 https://github.com/SAP-samples/sap-community-code-challenge-ui5/pull/40

I have idea for the next challenge. It is a Typescript in Sapui5. Maybe it will be interesting for me and some community members(I think)

Hi @former_member5334, definitely a great idea. More content on TypeScript in UI5 will come in the future 🤙

ArnaudBuchholz
Advisor
Advisor
0 Kudos

It looks like week4 tests are "empty". In any case, they are passing without change on my PR.

That is correct. The task is to write your own tests (minimum 2) 😉

MioYasuatke
Active Contributor
0 Kudos

Week3 test "should have button that opens dialog" sometimes passes and sometimes fails. I use fragment and load the fragment asynchronously. 

https://github.com/miyasuta/sap-community-code-challenge-ui5/tree/week3

 

0 Kudos

For week4 test, I'm writing the following code, but I sometimes get "navButton.firePress is not a function" error. Same again, sometimes pass, sometimes fail...

 

 

 

    it("Should go back to main page", async () => {
        const navButton = await browser.asControl({
            selector: {
                id: "navButton",
                viewName: Detail._viewName
              }
        })
        await navButton.firePress()
        const url = await browser.getUrl()
        expect(url).toMatch(/.*\/index.html#*$/)
    })

 

 

 

My week4 code here.

https://github.com/miyasuta/sap-community-code-challenge-ui5/tree/week4

I have the same issues you've described. I had to add this "dummy" test with the browser title to give it some timeout.

As I've seen in the browser, detail page doesn't have enough time to be opened. Looks like await Detail.open() doesn't actually wait until the page is fully rendered.

0 Kudos

Hi @Former Member and @MioYasuatke,
I also observed something similar a while back (https://github.com/ui5-community/wdi5/issues/259). Can you maybe try and remove id="app" and see what happens? Would be interesting to see if this is the same issue.

0 Kudos

Hi @nicoschoenteich ,

Thank you for your response. I have tried removing id="app" from App.view.xml, but as my Main view is embedded into App view, this broke navigation and the page is not properly displayed.

0 Kudos

Of course it that brakes navigation... My bad.

Hi @nicoschoenteich, I've tried that, but it also broke the app navigation.

I think I found what's wrong: should we add await here? https://github.com/SAP-samples/sap-community-code-challenge-ui5/blob/main/webapp/test/e2e/pageObject...

Hi @Former Member,

Thank you for the solution provided. It worked for me, too.