aboutsummaryrefslogtreecommitdiffstats
path: root/apps/files/src/composables/useFileListWidth.cy.ts
blob: b0d42c4a2d6c687de6fc2e4f4ff197deeddee193 (plain)
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
/*!
 * SPDX-FileCopyrightText: 2024 Nextcloud GmbH and Nextcloud contributors
 * SPDX-License-Identifier: AGPL-3.0-or-later
 */

import { defineComponent } from 'vue'
import { useFileListWidth } from './useFileListWidth.ts'

const ComponentMock = defineComponent({
	template: '<div id="test-component" style="width: 100%;background: white;">{{ fileListWidth }}</div>',
	setup() {
		return {
			fileListWidth: useFileListWidth(),
		}
	},
})
const FileListMock = defineComponent({
	template: '<main id="app-content-vue" style="width: 100%;"><component-mock /></main>',
	components: {
		ComponentMock,
	},
})

describe('composable: fileListWidth', () => {

	it('Has initial value', () => {
		cy.viewport(600, 400)

		cy.mount(FileListMock, {})
		cy.get('#app-content-vue')
			.should('be.visible')
			.and('contain.text', '600')
	})

	it('Is reactive to size change', () => {
		cy.viewport(600, 400)
		cy.mount(FileListMock)
		cy.get('#app-content-vue').should('contain.text', '600')

		cy.viewport(800, 400)
		cy.screenshot()
		cy.get('#app-content-vue').should('contain.text', '800')
	})

	it('Is reactive to style changes', () => {
		cy.viewport(600, 400)
		cy.mount(FileListMock)
		cy.get('#app-content-vue')
			.should('be.visible')
			.and('contain.text', '600')
			.invoke('attr', 'style', 'width: 100px')

		cy.get('#app-content-vue')
			.should('contain.text', '100')
	})
})