+ {error && (
+
+ {formatMessage(messages.error, { supportEmailLink })}
+
+ )}
+
+
+ );
+};
+CreditBanner.propTypes = {
+ cardId: PropTypes.string.isRequired,
+};
+
+export default CreditBanner;
diff --git a/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/index.test.jsx b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/index.test.jsx
new file mode 100644
index 0000000..f8fea3c
--- /dev/null
+++ b/src/containers/CourseCard/components/CourseCardBanners/CreditBanner/index.test.jsx
@@ -0,0 +1,82 @@
+import React from 'react';
+import { shallow } from 'enzyme';
+
+import { formatMessage } from 'testUtils';
+
+import EmailLink from 'components/EmailLink';
+
+import hooks from './hooks';
+import messages from './messages';
+import CreditBanner from '.';
+
+jest.mock('components/Banner', () => 'Banner');
+jest.mock('components/EmailLink', () => 'EmailLink');
+
+jest.mock('./hooks', () => ({
+ useCreditBannerData: jest.fn(),
+}));
+
+let el;
+const cardId = 'test-card-id';
+
+const ContentComponent = () => 'ContentComponent';
+const supportEmail = 'test-support-email';
+
+describe('CreditBanner component', () => {
+ describe('behavior', () => {
+ beforeEach(() => {
+ hooks.useCreditBannerData.mockReturnValue(null);
+ el = shallow(