Skip to content

Commit a69cdb9

Browse files
committed
Extension tests: improved test spec
Signed-off-by: Jan Bicker <jan.bicker@typefox.io>
1 parent 54251e6 commit a69cdb9

File tree

1 file changed

+56
-56
lines changed

1 file changed

+56
-56
lines changed

examples/browser/test/extensions.spec.ts

+56-56
Original file line numberDiff line numberDiff line change
@@ -53,78 +53,78 @@ describe('ExtensionManager', () => {
5353
});
5454
});
5555

56-
// This is a testcase which is just relevant if the cpp extension is already installed.
57-
describe('Uninstall', () => {
58-
it('should uninstall cpp extension if it is installed', () => {
56+
57+
describe('Search, install and uninstall the cpp extension', () => {
58+
before(() => {
5959
if (extensionManager.isExtensionItemVisible('#extensionListContainer', testExtensionName)) {
6060
if (extensionManager.findExtensionButtonByState(testExtensionName, '#extensionListContainer', 'installed').value !== null) {
6161
extensionManager.clickUninstall(testExtensionName);
6262
browser.waitUntil(() => extensionManager.findExtensionButtonByState(testExtensionName, '#extensionListContainer', 'working').value === null, 5000);
63-
assert.isTrue(extensionManager.findExtensionButtonByState(testExtensionName, '#extensionListContainer', 'installed').value === null, 'should be not installed');
6463
}
65-
} else {
66-
cppWasUninstalled = true;
6764
}
6865
});
69-
});
7066

71-
describe('Search', () => {
72-
it('should show cpp extension after type in "cpp"', () => {
73-
extensionManager.searchFor('cpp');
74-
assert.equal(extensionManager.countExtensionListElements(), 1);
75-
assert.isTrue(extensionManager.isExtensionItemVisible('#extensionListContainer', testExtensionName));
67+
it('should be initially uninstalled', () => {
68+
assert.isTrue(extensionManager.findExtensionButtonByState(testExtensionName, '#extensionListContainer', 'installed').value === null, ' cpp should be not installed');
7669
});
77-
});
7870

79-
describe('CPP Detail view', () => {
80-
it('should be opened after click on the cpp extension item.', () => {
81-
extensionManager.clickExtensionItem(testExtensionName);
82-
browser.waitUntil(
83-
() => {
84-
return browser.elements('div.theia-extension-detail > div.extensionHeaderContainer > div.extensionTitleContainer')
85-
.element('h2=' + testExtensionName).value !== null;
86-
},
87-
6000,
88-
'cpp detail view should be existent', 1000);
89-
assert.isTrue(extensionManager.isExtensionItemVisible('.theia-extension-detail', testExtensionName), 'cpp detail should be visible in DOM');
71+
describe('Search', () => {
72+
it('should show cpp extension after type in "cpp"', () => {
73+
extensionManager.searchFor('cpp');
74+
assert.equal(extensionManager.countExtensionListElements(), 1);
75+
assert.isTrue(extensionManager.isExtensionItemVisible('#extensionListContainer', testExtensionName));
76+
});
9077
});
9178

92-
it('cpp detail view should be visible', () => {
93-
const cppWidgetVisible =
94-
browser.element('.extensionName=@theia/cpp')
95-
.element('../../..').getAttribute('class').split(' ').indexOf('p-mod-hidden') === -1;
96-
assert.isTrue(cppWidgetVisible, 'cpp detail should be not hidden');
97-
const naviWidgetInvisible =
98-
browser.element('.extensionName=@theia/navigator')
99-
.element('../../..').getAttribute('class').split(' ').indexOf('p-mod-hidden') !== -1;
100-
assert.isTrue(naviWidgetInvisible, 'navigator detail should be hidden');
79+
describe('CPP Detail view', () => {
80+
it('should be opened after click on the cpp extension item.', () => {
81+
extensionManager.clickExtensionItem(testExtensionName);
82+
browser.waitUntil(
83+
() => {
84+
return browser.elements('div.theia-extension-detail > div.extensionHeaderContainer > div.extensionTitleContainer')
85+
.element('h2=' + testExtensionName).value !== null;
86+
},
87+
6000,
88+
'cpp detail view should be existent', 1000);
89+
assert.isTrue(extensionManager.isExtensionItemVisible('.theia-extension-detail', testExtensionName), 'cpp detail should be visible in DOM');
90+
});
91+
92+
it('cpp detail view should be visible', () => {
93+
const cppWidgetVisible =
94+
browser.element('.extensionName=@theia/cpp')
95+
.element('../../..').getAttribute('class').split(' ').indexOf('p-mod-hidden') === -1;
96+
assert.isTrue(cppWidgetVisible, 'cpp detail should be not hidden');
97+
const naviWidgetInvisible =
98+
browser.element('.extensionName=@theia/navigator')
99+
.element('../../..').getAttribute('class').split(' ').indexOf('p-mod-hidden') !== -1;
100+
assert.isTrue(naviWidgetInvisible, 'navigator detail should be hidden');
101+
});
101102
});
102-
});
103103

104-
describe('Install', () => {
105-
it('should install cpp extension', () => {
106-
extensionManager.clickInstallInDetailView(testExtensionName);
107-
browser.waitUntil(() => extensionManager.findExtensionButtonByState(
108-
testExtensionName, '#extensionListContainer', 'working').value === null, 300000, 'after installing button should not be in working state anymore');
109-
assert.isTrue(extensionManager.findExtensionButtonByState(testExtensionName, '#extensionListContainer', 'installed').value !== null, 'should be installed');
104+
describe('Install', () => {
105+
it('should install cpp extension', () => {
106+
extensionManager.clickInstallInDetailView(testExtensionName);
107+
browser.waitUntil(() => extensionManager.findExtensionButtonByState(
108+
testExtensionName, '#extensionListContainer', 'working').value === null, 300000, 'after installing button should not be in working state anymore');
109+
assert.isTrue(extensionManager.findExtensionButtonByState(testExtensionName, '#extensionListContainer', 'installed').value !== null, 'should be installed');
110+
});
111+
112+
it('cpp should be still visible in list after search query was reset', () => {
113+
extensionManager.resetSearchField();
114+
assert.isTrue(extensionManager.countExtensionListElements() > 1);
115+
assert.isTrue(extensionManager.isExtensionItemVisible('#extensionListContainer', testExtensionName));
116+
});
110117
});
111118

112-
it('cpp should be still visible in list after search query was reset', () => {
113-
extensionManager.resetSearchField();
114-
assert.isTrue(extensionManager.countExtensionListElements() > 1);
115-
assert.isTrue(extensionManager.isExtensionItemVisible('#extensionListContainer', testExtensionName));
116-
});
117-
});
118-
119-
describe('Uninstall (again)', () => {
120-
it('should uninstall cpp extension if it was uninstalled before test', () => {
121-
if (cppWasUninstalled) {
122-
extensionManager.clickUninstall(testExtensionName);
123-
browser.waitUntil(() => extensionManager.findExtensionButtonByState(
124-
testExtensionName, '#extensionListContainer', 'working').value === null, 300000, 'after uninstalling button should not be in working state anymore');
125-
assert.isTrue(extensionManager.findExtensionButtonByState(testExtensionName, '#extensionListContainer', 'installed').value === null, 'should be not installed');
126-
}
119+
describe('Uninstall', () => {
120+
it('should uninstall cpp extension if it was uninstalled before test', () => {
121+
if (cppWasUninstalled) {
122+
extensionManager.clickUninstall(testExtensionName);
123+
browser.waitUntil(() => extensionManager.findExtensionButtonByState(
124+
testExtensionName, '#extensionListContainer', 'working').value === null, 300000, 'after uninstalling button should not be in working state anymore');
125+
assert.isTrue(extensionManager.findExtensionButtonByState(testExtensionName, '#extensionListContainer', 'installed').value === null, 'should be not installed');
126+
}
127+
});
127128
});
128129
});
129-
130130
});

0 commit comments

Comments
 (0)