import { generateTestJs, generateComponentJs } from './jsGenerators';
describe('JS generator', () => {
it('generateTestTs should return tests file', () => {
const content = generateTestJs('Resolve');
const expected = `import { Resolve } from './Resolve';
describe('Resolve', () => {
});
`;
expect(content).toBe(expected);
});
it('should generate class component', () => {
const content = generateComponentJs('Search', 'class');
const expected = `import React, { Component } from 'react';
export class Search extends Component {
state = {
message: 'Hello',
};
render() {
const { showMessage } = this.props;
const { message } = this.state;
return (
{showMessage && message}
);
}
};
`;
expect(content).toBe(expected);
});
it('should generate function component', () => {
const content = generateComponentJs('Search', 'function');
const expected = `import React from 'react';
export const Search = ({ message = 'Hello' }) => {
return (
{message}
);
};
`;
expect(content).toBe(expected);
});
it('should generate function component with style', () => {
const content = generateComponentJs('Search', 'function', 'style.less');
const expected = `import React from 'react';
import './style.less';
export const Search = ({ message = 'Hello' }) => {
return (
{message}
);
};
`;
expect(content).toBe(expected);
});
});