import {AuthProvidersFixture} from 'sentry-fixture/authProviders'; import {OrganizationFixture} from 'sentry-fixture/organization'; import {RouterContextFixture} from 'sentry-fixture/routerContextFixture'; import {render, screen} from 'sentry-test/reactTestingLibrary'; import {OrganizationAuthList} from 'sentry/views/settings/organizationAuth/organizationAuthList'; describe('OrganizationAuthList', function () { it('renders with no providers', function () { render( ); expect( screen.queryByText('No authentication providers are available.') ).toBeInTheDocument(); }); it('renders', function () { render( ); expect(screen.getAllByLabelText('Configure').length).toBe(2); expect(screen.queryByText('Dummy')).toBeInTheDocument(); expect(screen.queryByText('Dummy SAML')).toBeInTheDocument(); }); it('renders for members', function () { const context = RouterContextFixture([ {organization: OrganizationFixture({access: ['org:read']})}, ]); render( , {context} ); expect(screen.getByText('Active')).toBeInTheDocument(); }); describe('with 2fa warning', function () { const require2fa = {require2FA: true}; const withSSO = {features: ['sso-basic']}; const withSAML = {features: ['sso-saml2']}; it('renders', function () { const organization = OrganizationFixture({...require2fa, ...withSSO}); const context = RouterContextFixture([{organization}]); render( , {context} ); expect( screen.getByText('Require 2FA will be disabled if you enable SSO.') ).toBeInTheDocument(); }); it('renders with saml available', function () { const organization = OrganizationFixture({...require2fa, ...withSAML}); const context = RouterContextFixture([{organization}]); render( , {context} ); expect( screen.getByText('Require 2FA will be disabled if you enable SSO.') ).toBeInTheDocument(); }); it('does not render without sso available', function () { const organization = OrganizationFixture({...require2fa}); const context = RouterContextFixture([{organization}]); render( , {context} ); expect( screen.queryByText('Require 2FA will be disabled if you enable SSO.') ).not.toBeInTheDocument(); }); it('does not render with sso and require 2fa disabled', function () { const organization = OrganizationFixture({...withSSO}); const context = RouterContextFixture([{organization}]); render( , {context} ); expect( screen.queryByText('Require 2FA will be disabled if you enable SSO.') ).not.toBeInTheDocument(); }); it('does not render with saml and require 2fa disabled', function () { const organization = OrganizationFixture({...withSAML}); const context = RouterContextFixture([{organization}]); render( , {context} ); expect( screen.queryByText('Require 2FA will be disabled if you enable SSO.') ).not.toBeInTheDocument(); }); }); });