import React from 'react'; import { composeStories } from '@storybook/testing-react'; import * as stories from './Credentials.stories'; import { iconTestId } from '../Icon/Icon.test'; import { render, screen } from '@testing-library/react'; const { WithTitleAndIcon, WithTitle, OneLine } = composeStories(stories); export const testCompId = 'test-credentials'; const testTitleIcon = 'cred-test-header-icon'; const testTitleId = 'cred-test-header-text'; const testTextId = 'cred-test-text'; test('Renders - Credentials with Title and Icon', () => { render(); const testTitleText = WithTitleAndIcon?.args?.title; const testText = WithTitleAndIcon?.args?.text; expect(screen.getByTestId(testCompId)).not.toBeNull(); expect(screen.getAllByTestId(iconTestId).length).toBeGreaterThanOrEqual(1); const titleElement = screen.getByTestId(testTitleId); expect(titleElement).not.toBeNull(); expect(titleElement.textContent).toBe(testTitleText); const textElement = screen.getByTestId(testTextId); expect(textElement).not.toBeNull(); expect(textElement.textContent).toBe(testText); }); test('Renders - Credentials with Title', () => { render(); const testTitleText = WithTitle?.args?.title; const testText = WithTitle?.args?.text; expect(screen.getByTestId(testCompId)).not.toBeNull(); expect(screen.getAllByTestId(iconTestId).length).toBeGreaterThanOrEqual(1); const titleElement = screen.getByTestId(testTitleId); expect(titleElement).not.toBeNull(); expect(titleElement.textContent).toBe(testTitleText); const textElement = screen.getByTestId(testTextId); expect(textElement).not.toBeNull(); expect(textElement.textContent).toBe(testText); }); test('Renders - Credentials One line', () => { render(); const testText = OneLine.args?.text; expect(screen.getByTestId(testCompId)).not.toBeNull(); expect(screen.queryByTestId(testTitleIcon)).toBeNull(); expect(screen.queryByTestId(testTitleId)).toBeNull(); const textElement = screen.getByTestId(testTextId); expect(textElement).not.toBeNull(); expect(textElement.textContent).toBe(testText); });