Browse Source

add layout test (#2499)

* add layout test

* change judge to tagName
pull/2509/merge
陈帅 8 years ago
committed by GitHub
parent
commit
d393c29d92
No known key found for this signature in database GPG Key ID: 4AEE18F83AFDEB23
  1. 4
      src/components/GlobalFooter/index.js
  2. 61
      src/e2e/layout.e2e.js

4
src/components/GlobalFooter/index.js

@ -5,7 +5,7 @@ import styles from './index.less';
const GlobalFooter = ({ className, links, copyright }) => {
const clsString = classNames(styles.globalFooter, className);
return (
<div className={clsString}>
<footer className={clsString}>
{links && (
<div className={styles.links}>
{links.map(link => (
@ -21,7 +21,7 @@ const GlobalFooter = ({ className, links, copyright }) => {
</div>
)}
{copyright && <div className={styles.copyright}>{copyright}</div>}
</div>
</footer>
);
};

61
src/e2e/layout.e2e.js

@ -0,0 +1,61 @@
import puppeteer from 'puppeteer';
import RouterConfig from '../../config/router.config';
function formatter(data) {
return data
.reduce((pre, item) => {
if (item.routes) {
return pre.concat(formatter(item.routes));
}
pre.push(item.path);
return pre;
}, [])
.filter(item => item);
}
describe('Homepage', () => {
let browser;
let page;
const testAllPage = async layout =>
new Promise(async (resolve, reject) => {
const loadPage = async index => {
const path = layout[index];
try {
await page.goto(`http://localhost:8000${path}`, { waitUntil: 'networkidle2' });
const haveFooter = await page.evaluate(
() => document.getElementsByTagName('footer').length > 0
);
expect(haveFooter).toBeTruthy();
if (index < layout.length - 1) {
loadPage(index + 1);
} else {
resolve('ok');
}
} catch (error) {
reject(error);
}
};
loadPage(0);
});
beforeAll(async () => {
browser = await puppeteer.launch({ args: ['--no-sandbox'] });
page = await browser.newPage();
jest.setTimeout(1000000);
});
it('test user layout', async () => {
const userLayout = formatter(RouterConfig[0].routes);
await testAllPage(userLayout);
});
it('test base layout', async () => {
const baseLayout = formatter(RouterConfig[1].routes);
await testAllPage(baseLayout);
});
afterAll(() => browser.close());
});
Loading…
Cancel
Save