Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
47 changes: 40 additions & 7 deletions cypress/e2e/core/header_app-menu.cy.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,20 +12,18 @@ const getAppMenu = () => getNextcloudHeader().find('.app-menu')
// the next-best stable selectors.
const getWaffleTrigger = () => getAppMenu().find('.app-menu__waffle')

describe('Header: App menu (waffle launcher)', { testIsolation: true }, () => {
beforeEach(() => {
clearState()
})
before(clearState)

describe('Open and click', () => {
describe('Header: App menu (waffle launcher)', { testIsolation: true }, () => {
describe('Normal user', () => {
beforeEach(() => {
cy.createRandomUser().then(($user) => {
cy.login($user)
cy.visit('/')
})
})

it('opens the popover and navigates when a tile is clicked', () => {
it('Open and click opens the popover and navigates when a tile is clicked', () => {
getWaffleTrigger().click()
cy.get('.app-menu__popover').should('be.visible')
getWaffleTrigger().should('have.attr', 'aria-expanded', 'true')
Expand All @@ -39,9 +37,16 @@ describe('Header: App menu (waffle launcher)', { testIsolation: true }, () => {
cy.location('pathname').should('include', '/apps/')
})
})

it('has all correct app navigation items', () => {
waffleMenuShouldContainApps([
{ name: 'Files', href: '/apps/files' },
{ name: 'Dashboard', href: '/apps/dashboard' },
])
})
})

describe('Admin gating: "More apps" tile', () => {
describe('Admin', () => {
const admin = new User('admin', 'admin')

beforeEach(() => {
Expand All @@ -54,5 +59,33 @@ describe('Header: App menu (waffle launcher)', { testIsolation: true }, () => {
cy.get('.app-menu__popover').should('be.visible')
cy.findByRole('menuitem', { name: 'More apps' }).should('be.visible')
})

it('has all correct app navigation items', () => {
waffleMenuShouldContainApps([
{ name: 'Files', href: '/apps/files' },
{ name: 'Dashboard', href: '/apps/dashboard' },
{ name: 'Appstore', href: '/settings/apps' },
])
})
})
})

/**
* Check that the waffle menu contains the given apps, by name and href.
*
* @param apps - The apps that should be present in the waffle menu, with their expected name and href.
*/
function waffleMenuShouldContainApps(apps: { name: string, href: string }[]) {
getWaffleTrigger().click()
getWaffleTrigger().should('have.attr', 'aria-expanded', 'true')
cy.findByRole('menu', { name: 'Apps' }).should('be.visible')

cy.findAllByRole('menuitem')
.then((items) => {
apps.forEach((app) => {
const item = items.toArray().find((i) => i.textContent?.includes(app.name))
expect(item, `App menu should contain ${app.name}`).to.exist
expect(item?.getAttribute('href')).to.match(new RegExp(`${app.href}(\\?.+|/?$)`))
})
})
}

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Large diffs are not rendered by default.

Original file line number Diff line number Diff line change
@@ -1,2 +1,2 @@
import{b as w,l as h,z as I,o as p,f as y,t as N,u as a,h as D,g as u,k as r,w as d,c as k,m as M,T,F as q,B as z,v as s,G as A}from"./Web-BwmPK40i.chunk.mjs";import{f as B,g as F,h as G,i as P}from"./mdi-Lt-19ASw.chunk.mjs";import{t as n}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as f}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as g}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{c as S,D as j,u as E}from"./DiscoverTypePost-iZg8MLG2.chunk.mjs";import{_ as H}from"./public-C1mLBHT3.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./index-DlyLvrtV.chunk.mjs";import"./appstore-main.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcTextArea-Dxzj4zdb-FMRUOSZF.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";/* empty css */import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./index-xEyWukTf.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import"./index-BU6wm4Hd.chunk.mjs";const J=["aria-roledescription","aria-labelledby"],K=["id"],L={class:"app-discover-carousel__wrapper"},O={class:"app-discover-carousel__button-wrapper"},Q={class:"app-discover-carousel__button-wrapper"},R=["aria-label"],U=w({__name:"DiscoverTypeCarousel",props:{...S,content:{type:Array,required:!0}},setup(m){const t=m,$=E(s(()=>t.headline)),e=h(Math.min(1,t.content.length-1)),c=h(t.content[e.value]),C=s(()=>e.value<t.content.length-1),x=s(()=>e.value>0),l=s(()=>t.id??(Math.random()+1).toString(36).substring(7)),v=s(()=>`${l.value}-h`),b=h("slide-in");return I(()=>e.value,(_,i)=>{_<i?b.value="slide-in":b.value="slide-out",A(()=>{c.value=t.content[e.value]})}),(_,i)=>(p(),y("section",{"aria-roledescription":a(n)("appstore","Carousel"),"aria-labelledby":v.value?`${v.value}`:void 0},[_.headline?(p(),y("h3",{key:0,id:v.value},N(a($)),9,K)):D("",!0),u("div",L,[u("div",O,[r(a(f),{class:"app-discover-carousel__button app-discover-carousel__button--previous",variant:"tertiary-no-background","aria-label":a(n)("appstore","Previous slide"),disabled:!x.value,onClick:i[0]||(i[0]=o=>e.value-=1)},{icon:d(()=>[r(a(g),{path:a(B)},null,8,["path"])]),_:1},8,["aria-label","disabled"])]),r(T,{name:b.value,mode:"out-in"},{default:d(()=>[(p(),k(j,M(c.value,{key:c.value.id??e.value,"aria-labelledby":`${l.value}-tab-${e.value}`,domId:`${l.value}-tabpanel-${e.value}`,inline:"",role:"tabpanel"}),null,16,["aria-labelledby","domId"]))]),_:1},8,["name"]),u("div",Q,[r(a(f),{class:"app-discover-carousel__button app-discover-carousel__button--next",variant:"tertiary-no-background","aria-label":a(n)("appstore","Next slide"),disabled:!C.value,onClick:i[1]||(i[1]=o=>e.value+=1)},{icon:d(()=>[r(a(g),{path:a(F)},null,8,["path"])]),_:1},8,["aria-label","disabled"])])]),u("div",{class:"app-discover-carousel__tabs",role:"tablist","aria-label":a(n)("appstore","Choose slide to display")},[(p(!0),y(q,null,z(m.content.length,o=>(p(),k(a(f),{id:`${l.value}-tab-${o}`,key:o,"aria-label":a(n)("appstore","{index} of {total}",{index:o,total:m.content.length}),"aria-controls":`${l.value}-tabpanel-${o}`,"aria-selected":`${e.value===o-1}`,role:"tab",variant:"tertiary-no-background",onClick:V=>e.value=o-1},{icon:d(()=>[r(a(g),{path:e.value===o-1?a(G):a(P)},null,8,["path"])]),_:2},1032,["id","aria-label","aria-controls","aria-selected","onClick"]))),128))],8,R)],8,J))}}),Ka=H(U,[["__scopeId","data-v-89f194e4"]]);export{Ka as default};
//# sourceMappingURL=DiscoverTypeCarousel-D1Tykxta.chunk.mjs.map
import{b as w,l as h,z as I,o as p,f as y,t as N,u as a,h as D,g as u,k as r,w as d,c as k,m as M,T,F as q,B as z,v as s,G as A}from"./Web-BwmPK40i.chunk.mjs";import{f as B,g as F,h as G,i as P}from"./mdi-Lt-19ASw.chunk.mjs";import{t as n}from"./translation-DoG5ZELJ-CFYnqluG.chunk.mjs";import{N as f}from"./logger-D3RVzcfQ-8mOgKmZ4.chunk.mjs";import{N as g}from"./createElementId-DhjFt1I9-B4kXTdvj.chunk.mjs";import{c as S,D as j,u as E}from"./DiscoverTypePost-iZg8MLG2.chunk.mjs";import{_ as H}from"./public-C1mLBHT3.chunk.mjs";import"./index-B-dGqfIG.chunk.mjs";import"./index-DlyLvrtV.chunk.mjs";import"./appstore-main.mjs";import"./pinia-CLibr4cC.chunk.mjs";import"./NcContent-BhMoPROW-DisoN_bw.chunk.mjs";import"./NcModal-DUWLRm_F-CU-AeBE5.chunk.mjs";import"./PencilOutline-CJ2aSuY5.chunk.mjs";import"./NcTextArea-Dxzj4zdb-stc727hj.chunk.mjs";import"./index-BOH7nBEM.chunk.mjs";import"./TrashCanOutline-Cv7t-yKN.chunk.mjs";import"./TrayArrowDown-BI3qCRD6.chunk.mjs";import"./NcInputField-B1bGxYHt-BybY_CkS.chunk.mjs";import"./index-BW4M2n71.chunk.mjs";import"./NcAvatar-M3-CbKbq-D3H79LgO.chunk.mjs";import"./index-BLNGy7h5.chunk.mjs";import"./util-Alk1iwuj.chunk.mjs";import"./ArrowRight-DKsMJImQ.chunk.mjs";import"./colors-BDeMBgfq-BQ_6MaUU.chunk.mjs";import"./NcUserStatusIcon-DsviB2Cr-CpKCZ3VO.chunk.mjs";import"./NcDateTime.vue_vue_type_script_setup_true_lang-BJuPH7S7-B1iF5g9H.chunk.mjs";import"./NcEmptyContent-CGAPqk4S-6l5cDfPe.chunk.mjs";import"./NcBreadcrumbs-5gl8Syfa-DEY8F3C7.chunk.mjs";import"./NcPasswordField-Be5_qcfm-ZLEgTVOQ.chunk.mjs";import"./NcTextField.vue_vue_type_script_setup_true_lang-BQHjkK8r-BU5OWoch.chunk.mjs";/* empty css */import"./NcCheckboxRadioSwitch-D8Dfv4iw-ChIm2mK6.chunk.mjs";import"./Plus-DYmK9QaT.chunk.mjs";import"./index-BoBLp2fu.chunk.mjs";import"./index-CMXcwXc6.chunk.mjs";import"./NcEmojiPicker-Bpw-68QP-D7y9NGJt.chunk.mjs";import"./emoji-C8k9NUlo-rFKNlNNR.chunk.mjs";import"./index-C_wPY1fR.chunk.mjs";/* empty css */import"./index-xEyWukTf.chunk.mjs";import"./NcSelectTags-D7qWNjXa-DQjEDMdI.chunk.mjs";import"./ContentCopy-BF1gBM5z.chunk.mjs";import"./NcUserBubble-CDQa0hGy-BM5qrjQl.chunk.mjs";import"./modulepreload-polyfill-BxzAKjcf.chunk.mjs";import"./index-DL1yHC1K-DnBG6QLJ.chunk.mjs";import"./index-BU6wm4Hd.chunk.mjs";const J=["aria-roledescription","aria-labelledby"],K=["id"],L={class:"app-discover-carousel__wrapper"},O={class:"app-discover-carousel__button-wrapper"},Q={class:"app-discover-carousel__button-wrapper"},R=["aria-label"],U=w({__name:"DiscoverTypeCarousel",props:{...S,content:{type:Array,required:!0}},setup(m){const t=m,$=E(s(()=>t.headline)),e=h(Math.min(1,t.content.length-1)),c=h(t.content[e.value]),C=s(()=>e.value<t.content.length-1),x=s(()=>e.value>0),l=s(()=>t.id??(Math.random()+1).toString(36).substring(7)),v=s(()=>`${l.value}-h`),b=h("slide-in");return I(()=>e.value,(_,i)=>{_<i?b.value="slide-in":b.value="slide-out",A(()=>{c.value=t.content[e.value]})}),(_,i)=>(p(),y("section",{"aria-roledescription":a(n)("appstore","Carousel"),"aria-labelledby":v.value?`${v.value}`:void 0},[_.headline?(p(),y("h3",{key:0,id:v.value},N(a($)),9,K)):D("",!0),u("div",L,[u("div",O,[r(a(f),{class:"app-discover-carousel__button app-discover-carousel__button--previous",variant:"tertiary-no-background","aria-label":a(n)("appstore","Previous slide"),disabled:!x.value,onClick:i[0]||(i[0]=o=>e.value-=1)},{icon:d(()=>[r(a(g),{path:a(B)},null,8,["path"])]),_:1},8,["aria-label","disabled"])]),r(T,{name:b.value,mode:"out-in"},{default:d(()=>[(p(),k(j,M(c.value,{key:c.value.id??e.value,"aria-labelledby":`${l.value}-tab-${e.value}`,domId:`${l.value}-tabpanel-${e.value}`,inline:"",role:"tabpanel"}),null,16,["aria-labelledby","domId"]))]),_:1},8,["name"]),u("div",Q,[r(a(f),{class:"app-discover-carousel__button app-discover-carousel__button--next",variant:"tertiary-no-background","aria-label":a(n)("appstore","Next slide"),disabled:!C.value,onClick:i[1]||(i[1]=o=>e.value+=1)},{icon:d(()=>[r(a(g),{path:a(F)},null,8,["path"])]),_:1},8,["aria-label","disabled"])])]),u("div",{class:"app-discover-carousel__tabs",role:"tablist","aria-label":a(n)("appstore","Choose slide to display")},[(p(!0),y(q,null,z(m.content.length,o=>(p(),k(a(f),{id:`${l.value}-tab-${o}`,key:o,"aria-label":a(n)("appstore","{index} of {total}",{index:o,total:m.content.length}),"aria-controls":`${l.value}-tabpanel-${o}`,"aria-selected":`${e.value===o-1}`,role:"tab",variant:"tertiary-no-background",onClick:V=>e.value=o-1},{icon:d(()=>[r(a(g),{path:e.value===o-1?a(G):a(P)},null,8,["path"])]),_:2},1032,["id","aria-label","aria-controls","aria-selected","onClick"]))),128))],8,R)],8,J))}}),Ka=H(U,[["__scopeId","data-v-89f194e4"]]);export{Ka as default};
//# sourceMappingURL=DiscoverTypeCarousel-BKROD9d-.chunk.mjs.map
Loading
Loading