Skip to content

Commit

Permalink
[#53] Improve handle error
Browse files Browse the repository at this point in the history
  • Loading branch information
tednguyendev committed Jun 22, 2023
1 parent 14a510a commit d49b178
Show file tree
Hide file tree
Showing 3 changed files with 10 additions and 7 deletions.
4 changes: 2 additions & 2 deletions nextjs-13/src/app/newsletter/[id]/page.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -40,15 +40,15 @@ describe('ViewNewsletter', () => {
expect(screen.getByTestId('clip-loader')).toBeInTheDocument();
});

it('NOT renders NewsletterDetail', async () => {
it('does NOT render NewsletterDetail', async () => {
render(<ViewNewsletter />);

expect(screen.queryByTestId('newsletter')).not.toBeInTheDocument();
});
});

describe('given NOT fetching data', () => {
it('NOT renders ClipLoader', async () => {
it('does NOT render ClipLoader', async () => {
render(<ViewNewsletter />);

await waitFor(() => {
Expand Down
11 changes: 7 additions & 4 deletions nextjs-13/src/app/newsletter/[id]/page.tsx
Original file line number Diff line number Diff line change
@@ -1,16 +1,16 @@
'use client';

import { Suspense, useEffect, useState } from 'react';
import { useEffect, useState } from 'react';
import { ClipLoader } from 'react-spinners';

import { useParams, redirect } from 'next/navigation';

import NewsletterDetail from '@components/NewsletterDetail';
import requestManager from 'lib/request/manager';
import makeToast from 'lib/toast/makeToast';

const ViewNewsletter = () => {
const [record, setRecord] = useState([]);
const [hasError, setHasError] = useState(false);
const [isLoading, setIsLoading] = useState(false);

const params = useParams();
Expand All @@ -25,9 +25,8 @@ const ViewNewsletter = () => {
setIsLoading(false);
setRecord(response.record);
} catch (error) {
makeToast(error.message, 'error');
setHasError(true);
setIsLoading(false);
redirect('/auth/sign-in');
}
};

Expand All @@ -36,6 +35,10 @@ const ViewNewsletter = () => {
// eslint-disable-next-line react-hooks/exhaustive-deps
}, []);

useEffect(() => {
if (hasError) redirect('/auth/sign-in');
}, [hasError]);

return (
<div className="view-newsletter" data-testid="view-newsletter">
{isLoading ? (
Expand Down
2 changes: 1 addition & 1 deletion nextjs-13/src/components/NewsletterDetail/index.test.tsx
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,7 @@ describe('NewsletterDetail', () => {
await waitFor(() => expect(screen.getByTestId('newsletter')).toBeVisible());
});

it('renders list of newsletters', async () => {
it('renders a newsletter', async () => {
const record = {
id: newsletterFactory.id,
name: newsletterFactory.name,
Expand Down

0 comments on commit d49b178

Please sign in to comment.