1/*
2 * Copyright (C) 2022 Huawei Device Co., Ltd.
3 * Licensed under the Apache License, Version 2.0 (the "License");
4 * you may not use this file except in compliance with the License.
5 * You may obtain a copy of the License at
6 *
7 *     http://www.apache.org/licenses/LICENSE-2.0
8 *
9 * Unless required by applicable law or agreed to in writing, software
10 * distributed under the License is distributed on an "AS IS" BASIS,
11 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
12 * See the License for the specific language governing permissions and
13 * limitations under the License.
14 */
15
16import { LitPopover } from '../../../src/base-ui/popover/LitPopover';
17
18describe('LitPopover Test', () => {
19  it('LitPopover01', () => {
20    let litPopover = new LitPopover();
21    expect(litPopover).not.toBeUndefined();
22    expect(litPopover).not.toBeNull();
23  });
24
25  it('LitPopover02', () => {
26    let litPopover = new LitPopover();
27    expect(litPopover.open).toBeFalsy();
28  });
29
30  it('LitPopover03', () => {
31    let litPopover = new LitPopover();
32    litPopover.open = true;
33    expect(litPopover.open).toBeTruthy();
34  });
35
36  it('LitPopover04', () => {
37    let litPopover = new LitPopover();
38    litPopover.open = false;
39    expect(litPopover.open).toBeFalsy();
40  });
41
42  it('LitPopover05', () => {
43    let litPopover = new LitPopover();
44    litPopover.direction = 'topleft';
45    expect(litPopover.direction).toEqual('topleft');
46  });
47
48  it('LitPopover06', () => {
49    let litPopover = new LitPopover();
50    expect(litPopover.direction).toEqual('topright');
51  });
52
53  it('LitPopover07', () => {
54    let litPopover = new LitPopover();
55    litPopover.type = 'multiple';
56    litPopover.dataSource = [
57      {
58        text: '# Samples',
59        isSelected: true,
60      },
61    ];
62    expect(litPopover.select).toEqual(['# Samples']);
63  });
64
65  it('LitPopover07', () => {
66    let litPopover = new LitPopover();
67    litPopover.type = 'radio';
68    litPopover.dataSource = [
69      {
70        text: '# Samples',
71        isSelected: true,
72      },
73    ];
74    expect(litPopover.select).toEqual(['# Samples']);
75  });
76
77  it('LitPopover08', () => {
78    let litPopover = new LitPopover();
79    litPopover.type = 'multiple-text';
80    litPopover.dataSource = [
81      {
82        text: '# Samples',
83        isSelected: true,
84      },
85    ];
86    expect(litPopover.select).toEqual(['# Samples']);
87  });
88
89  it('LitPopover09', () => {
90    let litPopover = new LitPopover();
91    litPopover.type = 'radio';
92    litPopover.title = 'tee';
93    litPopover.dataSource = [
94      {
95        text: '# Samples',
96        isSelected: true,
97      },
98    ];
99    expect(litPopover.select).toEqual(['# Samples']);
100  });
101
102  it('LitPopover10', () => {
103    let litPopover = new LitPopover();
104    litPopover.type = 'multiple-text';
105    litPopover.title = 'tee';
106    litPopover.dataSource = [
107      {
108        text: '# Samples',
109        isSelected: true,
110      },
111    ];
112    expect(litPopover.trigger).not.toBeUndefined();
113  });
114
115  it('LitPopover11', () => {
116    let litPopover = new LitPopover();
117    litPopover.type = 'multiple-text';
118    litPopover.title = 'tee';
119    litPopover.dataSource = [
120      {
121        text: '# Samples',
122        isSelected: false,
123      },
124    ];
125    expect(litPopover.limit).toEqual({
126      textLowerLimit: '0',
127      textUpperLimit: '∞',
128    });
129  });
130
131  it('LitPopover14', () => {
132    let litPopover = new LitPopover();
133    litPopover.type = 'data-ming';
134    litPopover.title = 'tee';
135    litPopover.dataSource = [
136      {
137        text: '# Samples',
138        isSelected: false,
139      },
140    ];
141    expect(litPopover.limit).toEqual({
142      textLowerLimit: '',
143      textUpperLimit: '',
144    });
145  });
146
147  it('LitPopover15', () => {
148    let litPopover = new LitPopover();
149    litPopover.type = 'multiple-text';
150    litPopover.title = 'tee';
151    litPopover.dataSource = [
152      {
153        text: '# Samples',
154        isSelected: true,
155      },
156    ];
157    expect(litPopover.limit).toEqual({
158      textLowerLimit: '0',
159      textUpperLimit: '∞',
160    });
161  });
162
163  it('LitPopover13', () => {
164    let litPopover = new LitPopover();
165    expect(litPopover.connectedCallback()).toBeUndefined();
166  });
167
168  it('LitPopover16', () => {
169    const onclick = jest.fn();
170    let litPopover = (document.body.innerHTML = `
171            <lit-popover id='popover'></lit-popover>
172        `);
173    const popover = document.getElementById('popover');
174    expect(onclick).not.toBeCalled();
175    popover!.onclick = onclick;
176    popover!.click();
177    expect(onclick).toBeCalled();
178    expect(onclick).toHaveBeenCalledTimes(1);
179  });
180});
181