1
0
mirror of synced 2026-01-02 21:04:32 -05:00
Files
docs/tests
Jason Etcovitch 9e38a854b9 Filterable code examples on Actions landing page (#16276)
* Add custom hover shadows

* Support avatars

* Add guide-card include

* Use it in product-landing

* Add gradient styles

* Add guides frontmatter

* Use guideArticles instead of full objects

* Add support for authors

* Add support for category header

* Just pass the whole page

* Use it

* guide.url => guide.href

* Use `*.githubusercontent.com`

* Fix mobile card width

* Remove showDescription check

* Use featureLinks.guideCards

* Forgot an if

* Add contextualizers/actions-code-examples

* Use code-example-card include

* Tweak sizing/shadows

* Add a basic filterer

* Some visual tweaks

* labels => tags

* Cleanup some code

* Improve spacing on mobile

* Add "No results!" blurb

* Fix a boog

* Tweak spacing

* Remove support banner

* Improve "No results" state

* Just use login instead of name/avatarUrl

* Change card spacing

* Use circular avatars

* Add "Show more" button

* Add margin beneath "Guides"

* Use smaller font

* Assume github.com for code examples

* Show two columns at small screen

* Make "Show more" a btn

* Use the "repo" octicon

* Link to contributing guide

* Use a YAML file instead of a middleware

* Link straight to the file

* Fix some wonky markuip

* Fix a broken link

* Fix the borked test

* Allow variables that aren't strings

* Fix remaining tests
2020-11-12 11:35:43 -05:00
..
2020-11-03 15:35:56 -05:00
2020-09-27 14:10:11 +02:00
2020-09-27 14:10:11 +02:00
2020-09-27 14:10:11 +02:00

Tests

It's not strictly necessary to run tests locally while developing: You can always open a pull request and rely on the CI service to run tests for you, but sometimes it's helpful to run tests locally before pushing your changes to GitHub.

Test are written using jest, a framework maintained by Facebook and used by many teams at GitHub. Jest is convenient in that it provides everything: a test runner, an assertion library, code coverage analysis, custom reporters for diferent types of test output, etc.

Running all the tests

Once you've followed the development instructions above, you can run the entire test suite locally:

script/test # or `npm test`

Watching all the tests

You can also run a script that will continually watch for changes and re-run the tests any time a change is made. This command will notify you when tests change to and from a passing or failing state, and will also print out a test coverage report, so you can see what files are in need of tests.

npm run test-watch

Testing individual files

If you're making changes to a specific file and don't want to run the entire test suite, you can pass an argument to the jest testing tool:

jest __tests__/page.js

The argument doesn't have to be a fully qualified file path. It can also be a portion of a filename:

jest page # runs tests on __tests__/page.js and __tests__/pages.js

Linting

To validate all your JavaScript code (and auto-format some easily reparable mistakes), run the linter:

npm run lint

This test checks all internal links and image references in the English site. To run it locally (takes about 60 seconds):

npx jest links-and-images

It checks images, anchors, and links for every version of every page.

It reports five types of problems:

  1. Broken image references
    • Example: /assets/images/foo.png where foo.png doesn't exist.
  2. Broken same-page anchors
    • Example: #foo where the page does not have a heading Foo.
  3. Broken links due to page not found
    • Example: /github/using-git/foo where there is no foo.md file at that path.
  4. Broken links due to versioning
    • Example: an unversioned link to a Dotcom-only article in a page that has Enterprise versions.
  5. Broken anchors on links
    • Example: /some/valid/link#bar where the linked page can be found but it does not have a heading Bar.

If you need to check S3 image references, you can run script/check-s3-images.js. See script/README for details.