@@ -10,12 +10,14 @@ import { ITestContext, createTestContext, openTerminal, timeout } from '../../..
10
10
let ctx : ITestContext ;
11
11
test . beforeAll ( async ( { browser } ) => {
12
12
ctx = await createTestContext ( browser ) ;
13
+ ctx . page . setViewportSize ( { width : 1024 , height : 768 } ) ;
13
14
await openTerminal ( ctx ) ;
14
15
} ) ;
15
16
test . afterAll ( async ( ) => await ctx . page . close ( ) ) ;
16
17
17
18
test . describe ( 'FitAddon' , ( ) => {
18
19
test . beforeEach ( async function ( ) : Promise < any > {
20
+ await ctx . page . evaluate ( `document.querySelector('#terminal-container').style.display=''` ) ;
19
21
await ctx . page . evaluate ( `
20
22
window.term.reset()
21
23
window.fit?.dispose();
@@ -38,15 +40,14 @@ test.describe('FitAddon', () => {
38
40
// });
39
41
40
42
test ( 'no terminal' , async function ( ) : Promise < any > {
41
- await ctx . page . evaluate ( `window.fit = new FitAddon();` ) ;
42
- strictEqual ( await ctx . page . evaluate ( `window.fit.proposeDimensions()` ) , undefined ) ;
43
+ await ctx . page . evaluate ( `window.fit2 = new FitAddon();` ) ;
44
+ strictEqual ( await ctx . page . evaluate ( `window.fit2.proposeDimensions()` ) , undefined ) ;
45
+ await ctx . page . evaluate ( `window.fit2.dispose();` ) ;
43
46
} ) ;
44
47
45
48
test . describe ( 'proposeDimensions' , ( ) => {
46
- // test.afterEach(() => unloadFit());
47
-
48
49
test ( 'default' , async function ( ) : Promise < any > {
49
- await loadFit ( ) ;
50
+ await setDimensions ( ) ;
50
51
const dimensions : { cols : number , rows : number } = await ctx . page . evaluate ( `window.fit.proposeDimensions()` ) ;
51
52
ok ( dimensions . cols > 85 ) ;
52
53
ok ( dimensions . cols < 88 ) ;
@@ -55,7 +56,7 @@ test.describe('FitAddon', () => {
55
56
} ) ;
56
57
57
58
test ( 'width' , async function ( ) : Promise < any > {
58
- await loadFit ( 1008 ) ;
59
+ await setDimensions ( 1008 ) ;
59
60
const dimensions : { cols : number , rows : number } = await ctx . page . evaluate ( `window.fit.proposeDimensions()` ) ;
60
61
ok ( dimensions . cols > 108 ) ;
61
62
ok ( dimensions . cols < 111 ) ;
@@ -64,7 +65,7 @@ test.describe('FitAddon', () => {
64
65
} ) ;
65
66
66
67
test ( 'small' , async function ( ) : Promise < any > {
67
- await loadFit ( 1 , 1 ) ;
68
+ await setDimensions ( 1 , 1 ) ;
68
69
deepEqual ( await ctx . page . evaluate ( `window.fit.proposeDimensions()` ) , {
69
70
cols : 2 ,
70
71
rows : 1
@@ -76,7 +77,7 @@ test.describe('FitAddon', () => {
76
77
await ctx . page . evaluate ( `document.querySelector('#terminal-container').style.display='none'` ) ;
77
78
await ctx . page . evaluate ( `window.term = new Terminal()` ) ;
78
79
await ctx . page . evaluate ( `window.term.open(document.querySelector('#terminal-container'))` ) ;
79
- await loadFit ( ) ;
80
+ await setDimensions ( ) ;
80
81
const dimensions : { cols : number , rows : number } | undefined = await ctx . page . evaluate ( `window.fit.proposeDimensions()` ) ;
81
82
// The value of dims will be undefined if the char measure strategy falls back to the DOM
82
83
// method, so only assert if it's not undefined.
@@ -86,15 +87,12 @@ test.describe('FitAddon', () => {
86
87
ok ( dimensions . rows > 24 ) ;
87
88
ok ( dimensions . rows < 29 ) ;
88
89
}
89
- await ctx . page . evaluate ( `document.querySelector('#terminal-container').style.display='block'` ) ;
90
90
} ) ;
91
91
} ) ;
92
92
93
93
test . describe ( 'fit' , ( ) => {
94
- test . afterEach ( ( ) => unloadFit ( ) ) ;
95
-
96
94
test ( 'default' , async function ( ) : Promise < any > {
97
- await loadFit ( ) ;
95
+ await setDimensions ( ) ;
98
96
await ctx . page . evaluate ( `window.fit.fit()` ) ;
99
97
const cols : number = await ctx . proxy . cols ;
100
98
const rows : number = await ctx . proxy . rows ;
@@ -105,7 +103,7 @@ test.describe('FitAddon', () => {
105
103
} ) ;
106
104
107
105
test ( 'width' , async function ( ) : Promise < any > {
108
- await loadFit ( 1008 ) ;
106
+ await setDimensions ( 1008 ) ;
109
107
await ctx . page . evaluate ( `window.fit.fit()` ) ;
110
108
const cols : number = await ctx . proxy . cols ;
111
109
const rows : number = await ctx . proxy . rows ;
@@ -116,23 +114,20 @@ test.describe('FitAddon', () => {
116
114
} ) ;
117
115
118
116
test ( 'small' , async function ( ) : Promise < any > {
119
- await loadFit ( 1 , 1 ) ;
117
+ await setDimensions ( 1 , 1 ) ;
120
118
await ctx . page . evaluate ( `window.fit.fit()` ) ;
121
119
strictEqual ( await ctx . proxy . cols , 2 ) ;
122
120
strictEqual ( await ctx . proxy . rows , 1 ) ;
123
121
} ) ;
124
122
} ) ;
125
123
} ) ;
126
124
127
- async function loadFit ( width : number = 800 , height : number = 450 ) : Promise < void > {
125
+ async function setDimensions ( width : number = 800 , height : number = 450 ) : Promise < void > {
128
126
await ctx . page . evaluate ( `
129
- window.fit = new FitAddon();
130
- window.term.loadAddon(window.fit);
131
127
document.querySelector('#terminal-container').style.width='${ width } px';
132
128
document.querySelector('#terminal-container').style.height='${ height } px';
129
+ document.querySelector('#terminal-container').style.display='';
133
130
` ) ;
134
- }
135
-
136
- async function unloadFit ( ) : Promise < void > {
137
- await ctx . page . evaluate ( `window.fit.dispose();` ) ;
131
+ // HACK: Await a short period as hiding #terminal-container can mess with other tests
132
+ await timeout ( 500 ) ;
138
133
}
0 commit comments