Skip to content

feat(blog) Migrate BlogCard component #5323

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Conversation

Harkunwar
Copy link
Contributor

This PR aims to migrate the BlogCard component as mentioned in #5308

@vercel
Copy link

vercel bot commented Apr 22, 2023

The latest updates on your projects. Learn more about Vercel for Git ↗︎

Name Status Preview Comments Updated (UTC)
nodejs-org ✅ Ready (Inspect) Visit Preview 💬 Add feedback Apr 24, 2023 6:03pm
nodejs-org-stories ✅ Ready (Inspect) Visit Preview Apr 24, 2023 6:03pm

@vercel vercel bot temporarily deployed to Preview – nodejs-org April 22, 2023 23:02 Inactive
@vercel vercel bot temporarily deployed to Preview – nodejs-org-stories April 22, 2023 23:03 Inactive
@vercel vercel bot temporarily deployed to Preview – nodejs-org-stories April 22, 2023 23:54 Inactive
@vercel vercel bot temporarily deployed to Preview – nodejs-org April 22, 2023 23:55 Inactive
@mikeesto
Copy link
Member

Thanks, see if you can fix the lint issue in components/Blog/BlogCard/index.module.scss https://github.com/nodejs/nodejs.org/actions/runs/4775331933/jobs/8489525157?pr=5323

@vercel vercel bot temporarily deployed to Preview – nodejs-org April 23, 2023 00:33 Inactive
@vercel vercel bot temporarily deployed to Preview – nodejs-org-stories April 23, 2023 00:34 Inactive
@vercel vercel bot temporarily deployed to Preview – nodejs-org April 23, 2023 00:37 Inactive
@vercel vercel bot temporarily deployed to Preview – nodejs-org-stories April 23, 2023 00:38 Inactive
@ovflowd
Copy link
Member

ovflowd commented Apr 23, 2023

From the Stories, it looks like that:

  • The colour of the title and font weights seem to be wrong
  • The date formatting needs to be corrected? I guess you should use FormattedDateTime with something that makes "Month Day, Year" (e.g. "June, 21, 2022)
  • After category, there should be a read time span

Example how it should look like:

image

Demo: https://nodejs.dev/en/blog

@vercel vercel bot temporarily deployed to Preview – nodejs-org April 23, 2023 16:22 Inactive
@vercel vercel bot temporarily deployed to Preview – nodejs-org-stories April 23, 2023 16:23 Inactive
@Harkunwar
Copy link
Contributor Author

I've made the requested changes

@vercel vercel bot temporarily deployed to Preview – nodejs-org-stories April 23, 2023 16:26 Inactive
@vercel vercel bot temporarily deployed to Preview – nodejs-org April 23, 2023 16:26 Inactive
Copy link
Member

@ovflowd ovflowd left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

We're almost there. But impressive work!!

@vercel vercel bot temporarily deployed to Preview – nodejs-org April 23, 2023 23:43 Inactive
@vercel vercel bot temporarily deployed to Preview – nodejs-org-stories April 23, 2023 23:44 Inactive
@vercel vercel bot temporarily deployed to Preview – nodejs-org April 23, 2023 23:48 Inactive
@vercel vercel bot temporarily deployed to Preview – nodejs-org-stories April 23, 2023 23:49 Inactive
@Harkunwar
Copy link
Contributor Author

@ovflowd I feel like there's a lot of duplication in the way we're writing unit tests and stories. If we could directly import stories in our unit tests, we'll have less duplication. Storybook already allows it, so would it be worth doing that?

@Harkunwar
Copy link
Contributor Author

Harkunwar commented Apr 24, 2023

If I add this to our jest.setup.mjs, it will allow us to use decorators defined in .storybook/preview.

import { setProjectAnnotations } from '@storybook/react';
import * as globalStorybookConfig from './.storybook/preview';

setProjectAnnotations(globalStorybookConfig);

Object.defineProperty(window, 'matchMedia', {
    writable: true,
    value: jest.fn().mockImplementation((query) => ({
        matches: false,
        media: query,
        onchange: null,
        addListener: jest.fn(),
        removeListener: jest.fn(),
        addEventListener: jest.fn(),
        removeEventListener: jest.fn(),
        dispatchEvent: jest.fn(),
    })),
});

Then we won't need to use IntlProvider anymore and our snapshot tests could become as simple as:

import { render } from '@testing-library/react';
import * as stories from '../index.stories';
import { composeStories } from '@storybook/react';

const { Default } = composeStories(stories);

jest.mock('next/router', () => ({
  useRouter: jest.fn().mockReturnValue({}),
}));

describe('BlogCard component', () => {
  it('renders correctly', () => {
    const { container } = render(<Default />);
    expect(container).toMatchSnapshot();
  });
});

And we can start using the stories in other tests as well instead of duplicating them multiple times.

@ovflowd
Copy link
Member

ovflowd commented Apr 24, 2023

@Harkunwar feel free to create an issue and work on a PR updating all tests to the approach you're suggesting :)

@vercel vercel bot temporarily deployed to Preview – nodejs-org April 24, 2023 18:02 Inactive
@vercel vercel bot temporarily deployed to Preview – nodejs-org-stories April 24, 2023 18:03 Inactive
Copy link
Contributor

@shanpriyan shanpriyan left a comment

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Looks great! 🚀

@shanpriyan shanpriyan added the website redesign Issue/PR part of the Node.js Website Redesign label Apr 24, 2023
@ovflowd ovflowd merged commit 154890b into nodejs:major/website-redesign Apr 25, 2023
ovflowd pushed a commit that referenced this pull request May 3, 2023
ovflowd added a commit that referenced this pull request May 14, 2023
* feat(unit-test): introduce unit test on website redesign branch (#5178

feat(unit-test): introduce unit test

* chore(minor): just a tiny design nitpick

* chore: set up storybook (#5191) (#5214)

* chore: set up testing-library jest extend (#5231)

Co-authored-by: Manish Kumar ⛄ <[email protected]>

* chore(dependencies): updated dependencies

* feat: create section title component (#5237)

Co-authored-by: Wai.Tung <[email protected]>

* 📎 chore(migration): migrate banner component (#5233)

Co-authored-by: Shanmughapriyan S <[email protected]>
Co-authored-by: Michael Esteban <[email protected]>
Co-authored-by: Claudio Wunder <[email protected]>

* feat: migrate AnimatedPlaceholder component (#5238

Migrate AnimatedPlaceholder component from nodejs.dev
and create a new Story.

* feat: create article alert component (#5243)

* feat: migrate blockquote component (#5259)

* feat(stylelint,storybook): fixed styleling misconfig and fixed storybooks (#5281)

* feat: create article data tag component (#5280)

* feat: migrate AuthorList component and add story 🎉 (#5277)

Co-authored-by: Michael Esteban <[email protected]>

* chore(migration): migrate language selector component (#5266)

Co-authored-by: Claudio Wunder <[email protected]>
Co-authored-by: Teja Sai Sandeep Reddy Konala <[email protected]>
Co-authored-by: Shanmughapriyan S <[email protected]>
Co-authored-by: Michael Esteban <[email protected]>

* feat(DarkModeToggler): Migrate and add stories to theme toggler 🎉 (#5236)

Co-authored-by: Claudio Wunder <[email protected]>
Co-authored-by: Claudio Wunder <[email protected]>

* chore: updated contributing guidelines, eslint rules and storybook templates (#5294)

Co-authored-by: Shanmughapriyan S <[email protected]>
Co-authored-by: Manish Kumar ⛄ <[email protected]>

* chore: contributing quick fix of example

Signed-off-by: Claudio Wunder <[email protected]>

* chore: story guide and react spreading

Signed-off-by: Claudio Wunder <[email protected]>

* chore: remove base styles from old styling

* chore: fix storybook styles, imports, typescript config and dependencies (#5319

* chore: optimises tsconfig

* chiore: add missing dependencies

* chore: type storybook constants

* chore: styles moved styles to somewhere else

* chore: add global json type definition

* chore: i18n aria-label instead of sr-only

* chore: added open sans font family and space between imports

* chore: moved styles and fixed styles and updated banner stories

* fix: stylelint rules

* chore: updated tsconfig

* chore: fix tests

* fix: darkmodetoggle test

* chore: stories use index.stories.tsx

* chore: adopt turborepo (#5316

* chore: revert pnpm use plain npm

* fix: package.json

* chore: remove warnings and add node_env

* chore: cross-env

* fix: fix turbo pipelines

* chore: only cache certain files

* chore: turbo shouldn't care about coverage outputs

* chore: proper inputs and outputs for pipelines

* chore: do not store some outputs and updated inputs for lint

* chore: added prettier configs

* chore: remove console.info

* chore: updated inputs of all other entries

* fix(package.json) Lint command is missing slashes (#5321

fix(package.json) lint:fix missing slashes

* moved `DataTag` to `components/Api` (#5317)

Co-authored-by: vasanth9 <cheepurupalli.vasanthkumar.com>
Co-authored-by: Shanmughapriyan S <[email protected]>

* hot-fix: dependency updates and fix dev runtime

* chore: updated start command

* migration(Layout): newFooter (#5320)

Co-authored-by: Claudio Wunder <[email protected]>

* feat: migrate EditLink component (#5271)

Co-authored-by: Claudio Wunder <[email protected]>
Co-authored-by: Wai.Tung <[email protected]>

* feat(blog) Migrate BlogCard component (#5323)

Co-authored-by: Michael Esteban <[email protected]>

* Issue#5307 - Add framer-motion to the dependency list (#5318)

* chore: add remote turbo cache and simplified gh actions cache (#5326)Co-authored-by: Aymen Naghmouchi <[email protected]>

* chore: add remote turbo cache and simplified gh actions cache

* chore: updated cache rules

* chore: more cache rules

---------

Co-authored-by: Aymen Naghmouchi <[email protected]>

* chore: fix storybook local development mode (#5335)

* chore: migrate pagination component (#5331)

Co-authored-by: Teja Sai Sandeep Reddy Konala <[email protected]>
Co-authored-by: Claudio Wunder <[email protected]>
Co-authored-by: Wai.Tung <[email protected]>

* Chore(node feat) (#5338)

Co-authored-by: Claudio Wunder <[email protected]>

* chore: migrate releases types (#5324)

* hotfix: first element no margin-top

* (website redesign) Feat(shellbox): migration (#5234)

Co-authored-by: Manish Kumar ⛄ <[email protected]>
Co-authored-by: Claudio Wunder <[email protected]>
Co-authored-by: Shanmughapriyan S <[email protected]>
Co-authored-by: Michael Esteban <[email protected]>
Co-authored-by: Wai.Tung <[email protected]>

* fix(i18n): translation key (#5347)

Co-authored-by: Shanmughapriyan S <[email protected]>
Co-authored-by: Claudio Wunder <[email protected]>

* chore: updated dependencies

* chore: vercel enable middleware and i18n redirection (#5300)

* feat(unit-test): introduce unit test on website redesign branch (#5178

feat(unit-test): introduce unit test

* chore: set up storybook (#5191) (#5214)

* feat(stylelint,storybook): fixed styleling misconfig and fixed storybooks (#5281)

* feat(DarkModeToggler): Migrate and add stories to theme toggler 🎉 (#5236)

Co-authored-by: Claudio Wunder <[email protected]>
Co-authored-by: Claudio Wunder <[email protected]>

* chore: updated contributing guidelines, eslint rules and storybook templates (#5294)

Co-authored-by: Shanmughapriyan S <[email protected]>
Co-authored-by: Manish Kumar ⛄ <[email protected]>

* chore: fix storybook styles, imports, typescript config and dependencies (#5319

* chore: optimises tsconfig

* chiore: add missing dependencies

* chore: type storybook constants

* chore: styles moved styles to somewhere else

* chore: add global json type definition

* chore: i18n aria-label instead of sr-only

* chore: added open sans font family and space between imports

* chore: moved styles and fixed styles and updated banner stories

* fix: stylelint rules

* chore: updated tsconfig

* chore: fix tests

* fix: darkmodetoggle test

* chore: stories use index.stories.tsx

* chore: adopt turborepo (#5316

* chore: revert pnpm use plain npm

* fix: package.json

* chore: remove warnings and add node_env

* chore: cross-env

* fix: fix turbo pipelines

* chore: only cache certain files

* chore: turbo shouldn't care about coverage outputs

* chore: proper inputs and outputs for pipelines

* chore: do not store some outputs and updated inputs for lint

* chore: added prettier configs

* chore: remove console.info

* chore: updated inputs of all other entries

* feat(stability): migrate component

* chore(snapshot): update

* Update components/Api/Stability/index.tsx

Co-authored-by: Claudio Wunder <[email protected]>
Signed-off-by: Augustin Mauroy <[email protected]>

* Update components/Api/Stability/index.tsx

Co-authored-by: Claudio Wunder <[email protected]>
Signed-off-by: Augustin Mauroy <[email protected]>

* Update components/Api/Stability/index.tsx

Co-authored-by: Claudio Wunder <[email protected]>
Signed-off-by: Augustin Mauroy <[email protected]>

* fea(stability): update stories + fix

* Update components/Api/Stability/index.stories.tsx

Co-authored-by: Claudio Wunder <[email protected]>
Signed-off-by: Augustin Mauroy <[email protected]>

* fix(i18n): update turkish language direction (#5182)

* chore: rollback CODEOWNER changes (#5183)

* Sync: merge `major/website-redesign` into `main` (#5356)

Co-authored-by: Manish Kumar ⛄ <[email protected]>
Co-authored-by: Wai.Tung <[email protected]>
Co-authored-by: Shanmughapriyan S <[email protected]>
Co-authored-by: Michael Esteban <[email protected]>
Co-authored-by: Claudio Wunder <[email protected]>
Co-authored-by: Teja Sai Sandeep Reddy Konala <[email protected]>
Co-authored-by: Claudio Wunder <[email protected]>
Co-authored-by: vasanth9 <cheepurupalli.vasanthkumar.com>
Co-authored-by: Aymen Naghmouchi <[email protected]>
Co-authored-by: Teja Sai Sandeep Reddy Konala <[email protected]>
Co-authored-by: Augustin Mauroy <[email protected]>
Co-authored-by: Guilherme Araújo <[email protected]>
Co-authored-by: Augustin Mauroy <[email protected]>
Co-authored-by: HinataKah0 <[email protected]>
Co-authored-by: Olaleye Blessing <[email protected]>
Co-authored-by: ktssr <[email protected]>
Co-authored-by: Harkunwar Kochar <[email protected]>
Co-authored-by: vasanthkumar <[email protected]>
Co-authored-by: Floran Hachez <[email protected]>
Co-authored-by: Jatin <[email protected]>

* feat(stability): update snapshot

* Update components/Api/Stability/index.tsx

Co-authored-by: Jithil P Ponnan <[email protected]>
Signed-off-by: Augustin Mauroy <[email protected]>

* code format

* Update components/Api/Stability/index.tsx

Co-authored-by: Jithil P Ponnan <[email protected]>
Signed-off-by: Augustin Mauroy <[email protected]>

---------

Signed-off-by: Claudio Wunder <[email protected]>
Signed-off-by: Augustin Mauroy <[email protected]>
Co-authored-by: Claudio Wunder <[email protected]>
Co-authored-by: Guilherme Araújo <[email protected]>
Co-authored-by: Manish Kumar ⛄ <[email protected]>
Co-authored-by: Claudio Wunder <[email protected]>
Co-authored-by: Wai.Tung <[email protected]>
Co-authored-by: Shanmughapriyan S <[email protected]>
Co-authored-by: Michael Esteban <[email protected]>
Co-authored-by: HinataKah0 <[email protected]>
Co-authored-by: Olaleye Blessing <[email protected]>
Co-authored-by: ktssr <[email protected]>
Co-authored-by: Teja Sai Sandeep Reddy Konala <[email protected]>
Co-authored-by: Harkunwar Kochar <[email protected]>
Co-authored-by: vasanthkumar <[email protected]>
Co-authored-by: Jatin <[email protected]>
Co-authored-by: Aymen Naghmouchi <[email protected]>
Co-authored-by: Teja Sai Sandeep Reddy Konala <[email protected]>
Co-authored-by: Yagiz Nizipli <[email protected]>
Co-authored-by: Nick Schonning <[email protected]>
Co-authored-by: Floran Hachez <[email protected]>
Co-authored-by: Jithil P Ponnan <[email protected]>
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
website redesign Issue/PR part of the Node.js Website Redesign
Projects
None yet
Development

Successfully merging this pull request may close these issues.

4 participants