-
-
Notifications
You must be signed in to change notification settings - Fork 5.2k
Expand file tree
/
Copy pathsettings.cy.ts
More file actions
130 lines (111 loc) · 2.93 KB
/
Copy pathsettings.cy.ts
File metadata and controls
130 lines (111 loc) · 2.93 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
/*!
* SPDX-FileCopyrightText: 2025 Nextcloud GmbH and Nextcloud contributors
* SPDX-License-Identifier: AGPL-3.0-or-later
*/
describe('files_external settings', () => {
before(() => {
cy.runOccCommand('app:enable files_external')
cy.login({ language: 'en', password: 'admin', userId: 'admin' })
})
beforeEach(() => {
cy.runOccCommand('files_external:list --output json')
.then((exec) => {
const list = JSON.parse(exec.stdout)
for (const entry of list) {
cy.runOccCommand('files_external:delete ' + entry)
}
})
cy.visit('/settings/admin/externalstorages')
})
it('can see the settings section', () => {
cy.findByRole('heading', { name: 'External storage' })
.should('be.visible')
cy.get('table#externalStorage')
.should('be.visible')
})
it('populates the row and creates a new empty one', () => {
selectBackend('local')
// See cell now contains the backend
getTable()
.findAllByRole('row')
.first()
.find('.backend')
.should('contain.text', 'Local')
// and the backend select is available but clear
getBackendSelect()
.should('have.value', null)
// the suggested mount point name is set to the backend
getTable()
.findAllByRole('row')
.first()
.find('input[name="mountPoint"]')
.should('have.value', 'Local')
})
it('does not save the storage with missing configuration', function() {
selectBackend('local')
getTable()
.findAllByRole('row').first()
.should('be.visible')
.within(() => {
cy.findByRole('checkbox', { name: 'All people' })
.check()
cy.get('button[title="Save"]')
.click()
})
cy.findByRole('dialog', { name: 'Authentication required' })
.should('not.exist')
})
it('does not save the storage with applicable configuration', function() {
selectBackend('local')
getTable()
.findAllByRole('row').first()
.should('be.visible')
.within(() => {
cy.get('input[placeholder="Location"]')
.type('/tmp')
cy.get('button[title="Save"]')
.click()
})
cy.findByRole('dialog', { name: 'Authentication required' })
.should('not.exist')
})
it('does save the storage with needed configuration', function() {
selectBackend('local')
getTable()
.findAllByRole('row').first()
.should('be.visible')
.within(() => {
cy.findByRole('checkbox', { name: 'All people' })
.check()
cy.get('input[placeholder="Location"]')
.type('/tmp')
cy.get('button[title="Save"]')
.click()
})
cy.findByRole('dialog', { name: 'Authentication required' })
.should('be.visible')
})
})
/**
* Get the external storages table
*/
function getTable() {
return cy.get('table#externalStorage')
.find('tbody')
}
/**
* Get the backend select element
*/
function getBackendSelect() {
return getTable()
.findAllByRole('row')
.last()
.findByRole('combobox')
}
/**
* @param backend - Backend to select
*/
function selectBackend(backend: string): void {
getBackendSelect()
.select(backend)
}