diff --git a/test/unit/components/join-flow-step.test.jsx b/test/unit/components/join-flow-step.test.jsx
new file mode 100644
index 000000000..80518cddd
--- /dev/null
+++ b/test/unit/components/join-flow-step.test.jsx
@@ -0,0 +1,64 @@
+import React from 'react';
+import {mountWithIntl} from '../../helpers/intl-helpers.jsx';
+import JoinFlowStep from '../../../src/components/join-flow/join-flow-step';
+
+describe('JoinFlowStep', () => {
+
+ test('components exist when props present', () => {
+ const props = {
+ children: null,
+ className: 'join-flow-step-class',
+ description: 'description text',
+ headerImgSrc: '/image.png',
+ onSubmit: jest.fn(),
+ nextButton: 'some stuff',
+ title: 'join flow step title',
+ waiting: true
+ };
+ const component = mountWithIntl(
+
+ );
+ expect(component.find('div.join-flow-header-image').exists()).toEqual(true);
+ expect(component.find({src: props.headerImgSrc}).exists()).toEqual(true);
+ expect(component.find('.join-flow-inner-content').exists()).toEqual(true);
+ expect(component.find('.join-flow-title').exists()).toEqual(true);
+ expect(component.find('.join-flow-title').first()
+ .prop('title')).toEqual(props.title);
+ expect(component.find('div.join-flow-description').exists()).toEqual(true);
+ expect(component.find('div.join-flow-description').text()).toEqual(props.description);
+ expect(component.find('NextStepButton').prop('waiting')).toEqual(true);
+ expect(component.find('NextStepButton').prop('content')).toEqual(props.nextButton);
+
+ component.unmount();
+ });
+
+ test('components do not exist when props not present', () => {
+ const component = mountWithIntl(
+
+ );
+
+ expect(component.find('div.join-flow-header-image').exists()).toEqual(false);
+ expect(component.find('.join-flow-inner-content').exists()).toEqual(true);
+ expect(component.find('.join-flow-title').exists()).toEqual(false);
+ expect(component.find('div.join-flow-description').exists()).toEqual(false);
+ expect(component.find('NextStepButton').prop('waiting')).toEqual(false);
+
+ component.unmount();
+ });
+
+ test('clicking submit calls passed in function', () => {
+ const props = {
+ onSubmit: jest.fn()
+ };
+ const component = mountWithIntl(
+
+ );
+ component.find('button[type="submit"]').simulate('submit');
+ expect(props.onSubmit).toHaveBeenCalled();
+ component.unmount();
+ });
+});