Merge pull request #361 from spotify/freben/pluginact

Fix act() warnings on newly created plugin test run
This commit is contained in:
Fredrik Adelöw
2020-03-23 15:05:00 +01:00
committed by GitHub
5 changed files with 31 additions and 5 deletions
@@ -12,7 +12,8 @@
},
"devDependencies": {
"@spotify-backstage/cli": "^{{version}}",
"@types/testing-library__jest-dom": "5.0.2"
"@types/testing-library__jest-dom": "5.0.2",
"jest-fetch-mock": "^3.0.3"
},
"dependencies": {
"@material-ui/lab": "4.0.0-alpha.45"
@@ -16,12 +16,14 @@
import React from 'react';
import { render } from '@testing-library/react';
import mockFetch from 'jest-fetch-mock';
import ExampleComponent from './ExampleComponent';
import { ThemeProvider } from '@material-ui/core';
import { BackstageTheme } from '@spotify-backstage/core';
describe('ExampleComponent', () => {
it('should render', () => {
mockFetch.mockResponse(() => new Promise(() => {}));
const rendered = render(
<ThemeProvider theme={BackstageTheme}>
<ExampleComponent />
@@ -16,11 +16,13 @@
import React from 'react';
import { render } from '@testing-library/react';
import mockFetch from 'jest-fetch-mock';
import ExampleFetchComponent from './ExampleFetchComponent';
describe('ExampleFetchComponent', () => {
it('should render', () => {
it('should render', async () => {
mockFetch.mockResponse(() => new Promise(() => {}));
const rendered = render(<ExampleFetchComponent />);
expect(rendered.getByTestId('progress')).toBeInTheDocument();
expect(await rendered.findByTestId('progress')).toBeInTheDocument();
});
});
@@ -15,3 +15,4 @@
*/
import '@testing-library/jest-dom/extend-expect';
require('jest-fetch-mock').enableMocks();
+22 -2
View File
@@ -36,8 +36,16 @@ async function main() {
print('Backstage loaded correctly, creating plugin');
const createPlugin = spawnPiped(['yarn', 'create-plugin']);
let stdout = '';
createPlugin.stdout.on('data', data => {
stdout = stdout + data.toString('utf8');
});
await waitFor(() => stdout.includes('Enter an ID for the plugin'));
createPlugin.stdin.write('test-plugin\n');
await new Promise(resolve => setTimeout(resolve, 2000));
await waitFor(() => stdout.includes('Enter the owner(s) of the plugin'));
createPlugin.stdin.write('@someuser\n');
print('Waiting for plugin create script to be done');
@@ -59,6 +67,18 @@ async function main() {
process.exit(0);
}
function waitFor(fn) {
return new Promise(resolve => {
const handle = setInterval(() => {
if (fn()) {
clearInterval(handle);
resolve();
return;
}
}, 100);
});
}
function print(msg) {
return process.stdout.write(`${msg}\n`);
}
@@ -117,7 +137,7 @@ async function waitForPageWithText(
browser,
path,
text,
{ intervalMs = 1000, maxAttempts = 60 } = {},
{ intervalMs = 1000, maxAttempts = 120 } = {},
) {
let attempts = 0;
for (;;) {