Cypress E2E testing support for Confluence Cloud Apps

Hi there,

We have been attempting to implement e2e testing into our development process using Cypress. For the most part we have been successful in that we are able to login and navigate around our dev instances using Cypress.

During the test process the app server starts up just fine and the app is registered. So initially it seems to be aware of the app descriptor.

Our issues start when we attempt to execute endpoints that are tied to keys in the app descriptor. For example, displaying a dynamic content macro. it seems when a page containing such a macro is created and loaded, the url/endpoint in the app descriptor is not executed.

example of such an entry:

"dynamicContentMacros": [
            {
                "conditions": [
                    {
                        "condition": "user_is_logged_in"
                    }
                ],
                "width": "10px",
                "height": "10px",
                "renderModes": {
                    "pdf": {
                        "url": "/macroButton?pageId={page.id}&field1={field1}"
                    },
                    "default": {
                        "url": "/macroButton?pageId={page.id}&field1={field1}"
                    }
                },
                "url": "/macroButton?pageId={page.id}&spaceKey={space.key}&macroId={macro.id}&buttonName={buttonName}",
                "description": {
                    "value": "Implements a button."
                },
                "icon": {
                    "width": 20,
                    "height": 20,
                    "url": "/logo.png"
                },
                "documentation": {
                    "url": "https://urltobuttondocs"
                },
                "categories": ["visuals"],
                "outputType": "block",
                "bodyType": "none",
                "featured": true,
                "parameters": [
                    {
                        "identifier": "buttonName",
                        "name": {
                            "value": "Button Name"
                        },
                        "type": "string",
                        "required": true,
                        "multiple": false,
                        "defaultValue": "Perform Event",
                        "hidden": false
                    }
                ],
                "name": {
                    "value": "Generic Button"
                },
                "key": "generic-button"
            }

Is it possible to manually attempt a macro insertion or would we be loosing some functionality that happens behind the scenes that prevents the url from being executed and displaying the macro on the page?

Does anyone know if we are even able to test our apps in this manner, or is there a limitation on how we can test our vendor apps during the development process?

Any input would be highly appreciated.

Kind regards,

Dirk de Klerk

1 Like

Hi Dirk, have you made any progress on your e2e testing with cypress?

I’m planning to use cypress for e2e tests as well but ours is a forge app so hopefully the endpoint invocation will work better… I am still working out the login at this point though - wondering if you’d share how you did that part.

Thanks,
Jeff Ryan