Skip to content

Commit 98902d3

Browse files
committed
Fix test
1 parent 86500de commit 98902d3

1 file changed

Lines changed: 51 additions & 158 deletions

File tree

Lines changed: 51 additions & 158 deletions
Original file line numberDiff line numberDiff line change
@@ -1,174 +1,67 @@
11
<!doctype html>
22
<html lang="en-US">
3-
4-
<head>
5-
<link href="/assets/index.css" rel="stylesheet" type="text/css" />
6-
<script crossorigin="anonymous" src="https://unpkg.com/@babel/standalone@7.8.7/babel.min.js"></script>
7-
<script crossorigin="anonymous" src="https://unpkg.com/react@16.8.6/umd/react.development.js"></script>
8-
<script crossorigin="anonymous" src="https://unpkg.com/react-dom@16.8.6/umd/react-dom.development.js"></script>
9-
<!-- <script src="https://unpkg.com/preact@10.25.4/dist/preact.umd.js"></script>
3+
<head>
4+
<link href="/assets/index.css" rel="stylesheet" type="text/css" />
5+
<script crossorigin="anonymous" src="https://unpkg.com/@babel/standalone@7.8.7/babel.min.js"></script>
6+
<script src="https://unpkg.com/preact@10.25.4/dist/preact.umd.js"></script>
107
<script src="https://unpkg.com/preact@10.25.4/hooks/dist/hooks.umd.js"></script>
118
<script src="https://unpkg.com/preact@10.25.4/compat/dist/compat.umd.js"></script>
129
<script>
1310
// Expose Preact's compat as React for WebChat
1411
window.React = preactCompat;
1512
window.ReactDOM = preactCompat;
16-
</script> -->
17-
<script crossorigin="anonymous" src="/test-harness.js"></script>
18-
<script crossorigin="anonymous" src="/test-page-object.js"></script>
19-
<script crossorigin="anonymous" src="/__dist__/webchat-es5.js"></script>
20-
<script crossorigin="anonymous" src="/__dist__/botframework-webchat-fluent-theme.development.js"></script>
21-
22-
<style>
23-
.bold {
24-
font-weight: bold;
25-
}
26-
27-
.italic {
28-
font-style: italic;
29-
}
30-
31-
.subtle {
32-
color: #999;
33-
}
34-
35-
main {
36-
position: relative;
37-
}
38-
39-
pre {
40-
}
41-
</style>
42-
</head>
43-
44-
<body>
45-
<main id="webchat"></main>
46-
<script type="text/babel">
47-
run = fn => fn();
48-
run(async function () {
49-
const {
50-
React,
51-
ReactDOM: { render },
52-
WebChat: { FluentThemeProvider, ReactWebChat, templateDecorator }
53-
} = window; // Imports in UMD fashion.
54-
55-
56-
const testDecorator = templateDecorator('TestDecorator');
57-
58-
const FinalComponent = ({ children, ...props }) => (
59-
<>
60-
{children} <pre>{JSON.stringify(props, null, 2)}</pre>
61-
</>
62-
);
63-
64-
console.log(testDecorator);
65-
66-
const { Provider, Proxy, createMiddleware } = testDecorator;
67-
68-
const { directLine, store } = testHelpers.createDirectLineEmulator();
69-
70-
// render(
71-
// <Provider middleware={[createMiddleware(FinalComponent)]}>
72-
// <Provider
73-
// middleware={[
74-
// createMiddleware(({ Next, children, ...props }) =>
75-
// <Next {...props} foo={123}>
76-
// _foo={props.foo}&nbsp;
77-
// {children}c
78-
// </Next>),
79-
// createMiddleware(({ Next, children, ...props }) =>
80-
// <Next {...props}>
81-
// {children}a
82-
// </Next>),
83-
// ]}>
84-
// <Provider
85-
// middleware={[
86-
// createMiddleware(({ Next, children, ...props }) =>
87-
// <Next {...props}>
88-
// {children}b
89-
// </Next>)
90-
// ]}>
91-
// <Proxy foo="bar" />
92-
// </Provider>
93-
// <Proxy bar="buz" children="hello" />
94-
// </Provider>
95-
// <Proxy bar="buz" children="hello" />
96-
// </Provider>,
97-
// document.getElementById('webchat')
98-
// );
99-
100-
101-
const ApplyClass = ({ Next, children, className, ...rest }) => <Next {...rest}><span className={className}>{children}</span></Next>;
102-
103-
const ApplyBold = ({ Next, children, bold, className = '', ...rest }) => (
104-
<Next {...rest} className={bold ? className + ' bold' : className}>
105-
{children}
106-
</Next>
107-
);
108-
109-
const ApplyItalic = ({ Next, children, italic, className = '', ...rest }) => (
110-
<Next {...rest} className={italic ? className + ' italic' : className}>
111-
{children}
112-
</Next>
113-
);
114-
115-
const RandomChild = ({ Next, children, ...rest }) => (
116-
<Next {...rest}>
117-
{children} {React.useState(() => Math.random().toFixed(2))[0]}
118-
</Next>
119-
);
120-
121-
const UpdateState = ({ Next, children, state = [0, () => {}], ...rest }) => {
122-
const [value, setValue] = state;
123-
return (
124-
<Next {...rest}>
125-
{children} {value}
126-
<button onClick={() => setValue(Math.random().toFixed(2))}>Update</button>
127-
</Next>
13+
</script>
14+
<script crossorigin="anonymous" src="/test-harness.js"></script>
15+
<script crossorigin="anonymous" src="/test-page-object.js"></script>
16+
<script crossorigin="anonymous" src="/__dist__/webchat-es5.js"></script>
17+
<script crossorigin="anonymous" src="/__dist__/botframework-webchat-fluent-theme.production.min.js"></script>
18+
</head>
19+
<body>
20+
<main id="webchat"></main>
21+
<script type="text/babel">
22+
run(async function () {
23+
const {
24+
React,
25+
ReactDOM: { render },
26+
WebChat: { FluentThemeProvider, ReactWebChat }
27+
} = window; // Imports in UMD fashion.
28+
29+
const { directLine, store } = testHelpers.createDirectLineEmulator();
30+
31+
const App = () => <ReactWebChat directLine={directLine} store={store} />;
32+
33+
render(
34+
<FluentThemeProvider>
35+
<App />
36+
</FluentThemeProvider>,
37+
document.getElementById('webchat')
12838
);
129-
};
130-
131-
const App = () => (
132-
<Provider middleware={[createMiddleware(ApplyBold), createMiddleware(RandomChild), createMiddleware(UpdateState), createMiddleware(ApplyItalic), createMiddleware(ApplyClass), createMiddleware(FinalComponent)]}>
133-
<Proxy bold={true} italic={true} state={React.useState()} request={{ foo: 'bar' }}>
134-
hello
135-
</Proxy>
136-
<Proxy italic={true} className="subtle" request={{ bar: 'buz' }}>
137-
world
138-
</Proxy>
139-
</Provider>
140-
);
141-
142-
render(<App />,
143-
document.getElementById('webchat')
144-
)
14539

146-
await pageConditions.uiConnected();
40+
await pageConditions.uiConnected();
14741

148-
await directLine.emulateIncomingActivity(
149-
'Eiusmod anim adipisicing cupidatat adipisicing officia sint qui consequat veniam id aute.'
150-
);
151-
152-
await pageConditions.numActivitiesShown(1);
42+
await directLine.emulateIncomingActivity(
43+
'Eiusmod anim adipisicing cupidatat adipisicing officia sint qui consequat veniam id aute.'
44+
);
15345

154-
// THEN: Fluent theme should be loaded.
155-
const buildInfo = Object.fromEntries(
156-
document
157-
.querySelector('head > meta[name="botframework-webchat:fluent-theme"]')
158-
.content.split(';')
159-
.map(value => value.trim().split('='))
160-
);
46+
await pageConditions.numActivitiesShown(1);
16147

162-
expect(buildInfo).toHaveProperty('build-tool', 'tsup');
163-
expect(buildInfo).toHaveProperty('module-format', 'esmodules');
164-
expect(buildInfo.version).toMatch(/^\d+\.\d+\.\d+($|-)/u);
48+
// THEN: Fluent theme should be loaded.
49+
const buildInfo = Object.fromEntries(
50+
document
51+
.querySelector('head > meta[name="botframework-webchat:fluent-theme"]')
52+
.content.split(';')
53+
.map(value => value.trim().split('='))
54+
);
16555

166-
expect(window.WebChat.FluentThemeProvider).toBeTruthy();
56+
expect(buildInfo).toHaveProperty('build-tool', 'tsup');
57+
expect(buildInfo).toHaveProperty('module-format', 'esmodules');
58+
expect(buildInfo.version).toMatch(/^\d+\.\d+\.\d+($|-)/u);
16759

168-
// THEN: Should render the activity.
169-
await host.snapshot('local');
170-
});
171-
</script>
172-
</body>
60+
expect(window.WebChat.FluentThemeProvider).toBeTruthy();
17361

174-
</html>
62+
// THEN: Should render the activity.
63+
await host.snapshot('local');
64+
});
65+
</script>
66+
</body>
67+
</html>

0 commit comments

Comments
 (0)