Skip to content

Commit 31567c6

Browse files
committed
added drag and drop test
1 parent 006c794 commit 31567c6

File tree

1 file changed

+209
-0
lines changed

1 file changed

+209
-0
lines changed
Lines changed: 209 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,209 @@
1+
/// <reference types="Cypress" />
2+
// TODO: add spies
3+
import { FSApi } from '../../fusion-studio-extension/src/common/api';
4+
context('Fusion Studio', () => {
5+
describe('Drag and drop', () => {
6+
let dataTransfer;
7+
const connection = {
8+
server: Cypress.env('API_HOST'),
9+
username: 'admin',
10+
password: '',
11+
};
12+
before(() => {
13+
// prepare collections/documents used in the test
14+
new Cypress.Promise(async resolve => {
15+
await FSApi.remove(connection, '/db/test_col', true).catch(e => { });
16+
await FSApi.newCollection(connection, '/db/test_col');
17+
await FSApi.newCollection(connection, '/db/test_col/col1');
18+
await FSApi.newCollection(connection, '/db/test_col/col2');
19+
await FSApi.newCollection(connection, '/db/test_col/col3');
20+
await FSApi.save(connection, '/db/test_col/col1/test.txt', 'test text file');
21+
resolve();
22+
})
23+
cy.connect()
24+
cy.visit('/')
25+
cy.get('.fusion-view')
26+
.should('be.visible')
27+
.find('.fusion-item')
28+
.click()
29+
cy.get('.fusion-view')
30+
.contains('db')
31+
.click()
32+
cy.get('.fusion-view')
33+
.contains('test_col')
34+
.click()
35+
cy.get('.fusion-view')
36+
.contains('col1')
37+
.click()
38+
cy.get('.fusion-view')
39+
.contains('col2')
40+
.click()
41+
cy.get('.fusion-view')
42+
.contains('col3')
43+
.click()
44+
cy.get('.fa-spinner')
45+
.should('not.exist')
46+
})
47+
beforeEach(() => {
48+
cy.window().then(win => cy.spy(win, 'fetch').as('fetch'));
49+
dataTransfer = new DataTransfer();
50+
});
51+
after(() => {
52+
// clean the test colelction
53+
new Cypress.Promise(resolve => FSApi.remove(connection, '/db/test_col', true).then(resolve).catch(resolve))
54+
})
55+
56+
it('should move a document', () => {
57+
cy.get('[node-id$="col1\\/test.txt"]')
58+
.should('be.visible')
59+
.trigger('dragstart', { dataTransfer })
60+
cy.get('[node-id$=col2]')
61+
.trigger('dragover', { dataTransfer })
62+
.trigger('drop', { dataTransfer })
63+
cy.get('[node-id$="col1\\/test.txt"]')
64+
.should('not.exist')
65+
cy.get('[node-id$="col2\\/test.txt"]')
66+
.should('be.visible')
67+
})
68+
69+
it('should copy a document', () => {
70+
cy.get('[node-id$="col2\\/test.txt"]')
71+
.should('be.visible')
72+
.trigger('dragstart', { dataTransfer })
73+
cy.get('[node-id$=col1]')
74+
.trigger('dragover', { dataTransfer })
75+
.trigger('drop', { dataTransfer, ctrlKey: true })
76+
cy.get('[node-id$="col1\\/test.txt"]')
77+
.should('be.visible')
78+
cy.get('[node-id$="col2\\/test.txt"]')
79+
.should('be.visible')
80+
})
81+
82+
it('should move a collection', () => {
83+
cy.get('[node-id$="test_col\\/col1"]')
84+
.should('be.visible')
85+
.trigger('dragstart', { dataTransfer })
86+
cy.get('[node-id$=col2]')
87+
.trigger('dragover', { dataTransfer })
88+
.trigger('drop', { dataTransfer })
89+
cy.get('[node-id$="test_col\\/col1"]')
90+
.should('not.exist')
91+
cy.get('[node-id$="col2\\/col1"]')
92+
.should('be.visible')
93+
.click()
94+
cy.get('[node-id$="col2\\/col1\\/test.txt"]')
95+
.should('be.visible')
96+
})
97+
98+
it('should copy a collection', () => {
99+
cy.get('[node-id$="test_col\\/col2\\/col1"]')
100+
.should('be.visible')
101+
.trigger('dragstart', { dataTransfer })
102+
cy.get('[node-id$=test_col]')
103+
.trigger('dragover', { dataTransfer })
104+
.trigger('drop', { dataTransfer, ctrlKey: true })
105+
cy.get('[node-id$="test_col\\/col2\\/col1"]')
106+
.should('be.visible')
107+
cy.get('[node-id$="col2\\/col1\\/test.txt"]')
108+
.should('be.visible')
109+
cy.get('[node-id$="test_col\\/col1"]')
110+
.should('be.visible')
111+
.click()
112+
cy.get('[node-id$="test_col\\/col1\\/test.txt"]')
113+
.should('be.visible')
114+
})
115+
116+
it('should move multiple items', () => {
117+
cy.get('[node-id$="test_col\\/col2"]')
118+
.should('be.visible')
119+
.trigger('click')
120+
cy.get('[node-id$="test_col\\/col1"]')
121+
.should('be.visible')
122+
.trigger('click', { ctrlKey: true })
123+
.trigger('dragstart', { dataTransfer })
124+
cy.get('[node-id$=col3]')
125+
.trigger('dragover', { dataTransfer })
126+
.trigger('drop', { dataTransfer })
127+
cy.get('[node-id$="test_col\\/col1"]')
128+
.should('not.exist')
129+
cy.get('[node-id$="test_col\\/col2"]')
130+
.should('not.exist')
131+
cy.get('[node-id$="col3\\/col1"]')
132+
.should('be.visible')
133+
.click()
134+
cy.get('[node-id$="col3\\/col1\\/test.txt"]')
135+
.should('be.visible')
136+
cy.get('[node-id$="col3\\/col2"]')
137+
.should('be.visible')
138+
.click()
139+
cy.get('[node-id$="col3\\/col2\\/test.txt"]')
140+
.should('be.visible')
141+
cy.get('[node-id$="col3\\/col2\\/col1"]')
142+
.should('be.visible')
143+
.click()
144+
cy.get('[node-id$="col3\\/col2\\/col1\\/test.txt"]')
145+
.should('be.visible')
146+
})
147+
148+
it('should copy multiple items', () => {
149+
cy.get('[node-id$="test_col\\/col3\\/col2"]')
150+
.should('be.visible')
151+
.trigger('click')
152+
cy.get('[node-id$="test_col\\/col3\\/col1"]')
153+
.should('be.visible')
154+
.trigger('click', { ctrlKey: true })
155+
.trigger('dragstart', { dataTransfer })
156+
cy.get('[node-id$=test_col]')
157+
.trigger('dragover', { dataTransfer })
158+
.trigger('drop', { dataTransfer, ctrlKey: true })
159+
cy.get('[node-id$="test_col\\/col3\\/col1"]')
160+
.should('be.visible')
161+
cy.get('[node-id$="test_col\\/col3\\/col2"]')
162+
.should('be.visible')
163+
cy.get('[node-id$="test_col\\/col1"]')
164+
.should('be.visible')
165+
.click()
166+
cy.get('[node-id$="test_col\\/col1\\/test.txt"]')
167+
.should('be.visible')
168+
cy.get('[node-id$="test_col\\/col2"]')
169+
.should('be.visible')
170+
.click()
171+
cy.get('[node-id$="test_col\\/col2\\/test.txt"]')
172+
.should('be.visible')
173+
cy.get('[node-id$="test_col\\/col2\\/col1"]')
174+
.should('be.visible')
175+
.click()
176+
cy.get('[node-id$="test_col\\/col2\\/col1\\/test.txt"]')
177+
.should('be.visible')
178+
})
179+
180+
it('should not move to a sub collection', () => {
181+
cy.get('[node-id$="test_col\\/col2"]')
182+
.should('be.visible')
183+
.trigger('dragstart', { dataTransfer })
184+
cy.get('[node-id$=test_col\\/col2\\/col1]')
185+
.trigger('dragover', { dataTransfer })
186+
.trigger('drop', { dataTransfer })
187+
cy.get('[node-id$="test_col\\/col2\\/col1\\/col2"]')
188+
.should('not.exist')
189+
cy.get('[node-id$="test_col\\/col2"]')
190+
.should('be.visible')
191+
})
192+
193+
it('should not copy to a sub collection', () => {
194+
cy.get('[node-id$="test_col\\/col2"]')
195+
.should('be.visible')
196+
.trigger('dragstart', { dataTransfer })
197+
cy.get('[node-id$=test_col\\/col2\\/col1]')
198+
.trigger('dragover', { dataTransfer })
199+
.trigger('drop', { dataTransfer, ctrlKey: true })
200+
cy.get('[node-id$="test_col\\/col2\\/col1\\/col2"]')
201+
.should('not.exist')
202+
cy.get('[node-id$="test_col\\/col2"]')
203+
.should('be.visible')
204+
})
205+
206+
})
207+
208+
209+
})

0 commit comments

Comments
 (0)