diff --git a/.github/workflows/dont-delete-assets.yml b/.github/workflows/dont-delete-assets.yml index 85bf15d159..a41bb399e6 100644 --- a/.github/workflows/dont-delete-assets.yml +++ b/.github/workflows/dont-delete-assets.yml @@ -37,7 +37,7 @@ jobs: id: comment env: GITHUB_TOKEN: ${{ secrets.GITHUB_TOKEN }} - run: .github/actions-scripts/deleted-assets-pr-comment.js + run: src/assets/scripts/deleted-assets-pr-comment.js - name: Find possible previous comment if: ${{ steps.comment.outputs.markdown != '' }} diff --git a/.github/workflows/orphaned-assets-check.yml b/.github/workflows/orphaned-assets-check.yml index 14ce1a2f6d..58c5fb0684 100644 --- a/.github/workflows/orphaned-assets-check.yml +++ b/.github/workflows/orphaned-assets-check.yml @@ -41,7 +41,7 @@ jobs: run: | set -e - filesToRemove=`./script/find-orphaned-assets.js` + filesToRemove=`./src/assets/scripts/find-orphaned-assets.js` [ -z "$filesToRemove" ] && exit 0 ${filesToRemove} | xargs git rm diff --git a/.github/workflows/test.yml b/.github/workflows/test.yml index 3be4e7bdab..b1618c69f6 100644 --- a/.github/workflows/test.yml +++ b/.github/workflows/test.yml @@ -42,6 +42,8 @@ jobs: // Note that *if you add* to this, remember to also add that // to the **required checks** in the branch protection rules. return [ + { name: 'assets', path: 'src/assets/tests', }, + // { name: 'audit-logs', path: 'src/assets/audit-logs', }, { name: 'automated-pipelines', path: 'src/automated-pipelines/tests', }, { name: 'content', path: 'tests/content', }, { name: 'content-render', path: 'src/content-render/tests', }, diff --git a/.github/workflows/validate-asset-images.yml b/.github/workflows/validate-asset-images.yml index 071dd2c646..359ebecfac 100644 --- a/.github/workflows/validate-asset-images.yml +++ b/.github/workflows/validate-asset-images.yml @@ -23,4 +23,4 @@ jobs: - uses: ./.github/actions/node-npm-setup - name: Validate all asset images - run: ./script/validate-asset-images.js + run: src/assets/scripts/validate-asset-images.js diff --git a/jest.config.js b/jest.config.js index 4a68ad9654..11c1d2c659 100644 --- a/jest.config.js +++ b/jest.config.js @@ -23,16 +23,10 @@ export default { '@primer/behaviors': '/node_modules/@primer/behaviors/dist/cjs/index.js', }, reporters, - modulePathIgnorePatterns: ['assets/'], + // modulePathIgnorePatterns: ['assets/'], setupFilesAfterEnv: ['./jest.setup.js', 'jest-expect-message'], testEnvironment: 'node', - testPathIgnorePatterns: [ - 'node_modules/', - 'vendor/', - 'tests/fixtures/', - 'tests/helpers/', - 'tests/javascripts/', - ], + testPathIgnorePatterns: ['node_modules/', 'vendor/', 'tests/fixtures/', 'tests/helpers/'], testMatch: ['**/tests/**/*.js'], testLocationInResults: isActions, globalSetup: './script/start-server-for-jest.js', diff --git a/middleware/index.js b/middleware/index.js index f02738f6db..129c2131c8 100644 --- a/middleware/index.js +++ b/middleware/index.js @@ -53,16 +53,16 @@ import featuredLinks from '#src/landings/middleware/featured-links.js' import learningTrack from '#src/learning-track/middleware/learning-track.js' import next from './next.js' import renderPage from './render-page.js' -import assetPreprocessing from './asset-preprocessing.js' +import assetPreprocessing from '#src/assets/middleware/asset-preprocessing.js' import archivedAssetRedirects from './archived-asset-redirects.js' import favicons from './favicons.js' -import setStaticAssetCaching from './static-asset-caching.js' +import setStaticAssetCaching from '#src/assets/middleware/static-asset-caching.js' import fastHead from './fast-head.js' import fastlyCacheTest from './fastly-cache-test.js' import trailingSlashes from './trailing-slashes.js' import fastlyBehavior from './fastly-behavior.js' import mockVaPortal from './mock-va-portal.js' -import dynamicAssets from './dynamic-assets.js' +import dynamicAssets from '#src/assets/middleware/dynamic-assets.js' import contextualizeSearch from '#src/search/middleware/contextualize.js' import shielding from '#src/shielding/middleware/index.js' diff --git a/src/assets/README.md b/src/assets/README.md new file mode 100644 index 0000000000..feae000ae5 --- /dev/null +++ b/src/assets/README.md @@ -0,0 +1,19 @@ +# ASSETS + +TBD what is ASSETS + +## What ASSETS does + +TBD why is ASSETS on the docs + +## How ASSETS works + +TBD step-by-step instructions to work on ASSETS + +## How to work on ASSETS + +TBD step-by-step instructions on how to work on ASSETS + +## How to get help for ASSETS + +TBD reference material diff --git a/middleware/asset-preprocessing.js b/src/assets/middleware/asset-preprocessing.js similarity index 100% rename from middleware/asset-preprocessing.js rename to src/assets/middleware/asset-preprocessing.js diff --git a/middleware/dynamic-assets.js b/src/assets/middleware/dynamic-assets.js similarity index 96% rename from middleware/dynamic-assets.js rename to src/assets/middleware/dynamic-assets.js index 7868c8c305..da1569747d 100644 --- a/middleware/dynamic-assets.js +++ b/src/assets/middleware/dynamic-assets.js @@ -2,8 +2,11 @@ import fs from 'fs/promises' import sharp from 'sharp' -import { assetCacheControl, defaultCacheControl } from './cache-control.js' -import { setFastlySurrogateKey, SURROGATE_ENUMS } from './set-fastly-surrogate-key.js' +import { assetCacheControl, defaultCacheControl } from '../../../middleware/cache-control.js' +import { + setFastlySurrogateKey, + SURROGATE_ENUMS, +} from '../../../middleware/set-fastly-surrogate-key.js' /** * This is the indicator that is a virtual part of the URL. diff --git a/middleware/static-asset-caching.js b/src/assets/middleware/static-asset-caching.js similarity index 86% rename from middleware/static-asset-caching.js rename to src/assets/middleware/static-asset-caching.js index 2c365a2f86..826ead77a5 100644 --- a/middleware/static-asset-caching.js +++ b/src/assets/middleware/static-asset-caching.js @@ -1,4 +1,7 @@ -import { setFastlySurrogateKey, SURROGATE_ENUMS } from './set-fastly-surrogate-key.js' +import { + setFastlySurrogateKey, + SURROGATE_ENUMS, +} from '../../../middleware/set-fastly-surrogate-key.js' export default function setStaticAssetCaching(req, res, next) { if (isChecksummed(req.path)) { diff --git a/script/deleted-assets-pr-comment.js b/src/assets/scripts/deleted-assets-pr-comment-1.js similarity index 92% rename from script/deleted-assets-pr-comment.js rename to src/assets/scripts/deleted-assets-pr-comment-1.js index d5dbebd81e..4ea7fe4a9d 100755 --- a/script/deleted-assets-pr-comment.js +++ b/src/assets/scripts/deleted-assets-pr-comment-1.js @@ -18,7 +18,7 @@ // [end-readme] import { program } from 'commander' -import main from '../.github/actions-scripts/deleted-assets-pr-comment.js' +import main from './deleted-assets-pr-comment.js' program .description('If applicable, print a snippet of Markdown about deleted assets') diff --git a/.github/actions-scripts/deleted-assets-pr-comment.js b/src/assets/scripts/deleted-assets-pr-comment.js similarity index 100% rename from .github/actions-scripts/deleted-assets-pr-comment.js rename to src/assets/scripts/deleted-assets-pr-comment.js diff --git a/script/find-orphaned-assets.js b/src/assets/scripts/find-orphaned-assets.js similarity index 98% rename from script/find-orphaned-assets.js rename to src/assets/scripts/find-orphaned-assets.js index 3cf09262a4..6685236265 100755 --- a/script/find-orphaned-assets.js +++ b/src/assets/scripts/find-orphaned-assets.js @@ -12,8 +12,8 @@ import path from 'path' import { program } from 'commander' import walk from 'walk-sync' -import walkFiles from './helpers/walk-files.js' -import languages from '../lib/languages.js' +import walkFiles from '../../../script/helpers/walk-files.js' +import languages from '../../../lib/languages.js' const EXCEPTIONS = new Set([ 'assets/images/site/favicon.ico', diff --git a/script/list-image-sizes.js b/src/assets/scripts/list-image-sizes.js similarity index 100% rename from script/list-image-sizes.js rename to src/assets/scripts/list-image-sizes.js diff --git a/script/validate-asset-images.js b/src/assets/scripts/validate-asset-images.js similarity index 100% rename from script/validate-asset-images.js rename to src/assets/scripts/validate-asset-images.js diff --git a/tests/rendering-fixtures/dynamic-assets.js b/src/assets/tests/dynamic-assets.js similarity index 96% rename from tests/rendering-fixtures/dynamic-assets.js rename to src/assets/tests/dynamic-assets.js index 4c136d226a..85af617c67 100644 --- a/tests/rendering-fixtures/dynamic-assets.js +++ b/src/assets/tests/dynamic-assets.js @@ -2,8 +2,8 @@ import { jest } from '@jest/globals' import sharp from 'sharp' import { fileTypeFromBuffer } from 'file-type' -import { SURROGATE_ENUMS } from '../../middleware/set-fastly-surrogate-key.js' -import { get, head } from '../helpers/e2etest.js' +import { SURROGATE_ENUMS } from '../../../middleware/set-fastly-surrogate-key.js' +import { get, head } from '../../../tests/helpers/e2etest.js' describe('dynamic assets', () => { jest.setTimeout(3 * 60 * 1000) diff --git a/tests/unit/static-assets.js b/src/assets/tests/static-assets-1.js similarity index 95% rename from tests/unit/static-assets.js rename to src/assets/tests/static-assets-1.js index 5c43d5c946..aff618cf20 100644 --- a/tests/unit/static-assets.js +++ b/src/assets/tests/static-assets-1.js @@ -1,9 +1,9 @@ import nock from 'nock' import { expect, jest } from '@jest/globals' -import { checkCachingHeaders } from '../helpers/caching-headers.js' -import { setDefaultFastlySurrogateKey } from '../../middleware/set-fastly-surrogate-key.js' -import archivedEnterpriseVersionsAssets from '../../middleware/archived-enterprise-versions-assets.js' +import { checkCachingHeaders } from '../../../tests/helpers/caching-headers.js' +import { setDefaultFastlySurrogateKey } from '../../../middleware/set-fastly-surrogate-key.js' +import archivedEnterpriseVersionsAssets from '../../../middleware/archived-enterprise-versions-assets.js' function mockRequest(path, { headers }) { const _headers = Object.fromEntries( diff --git a/tests/rendering/static-assets.js b/src/assets/tests/static-assets.js similarity index 93% rename from tests/rendering/static-assets.js rename to src/assets/tests/static-assets.js index ad8f7a9982..43c8fb750c 100644 --- a/tests/rendering/static-assets.js +++ b/src/assets/tests/static-assets.js @@ -3,8 +3,8 @@ import path from 'path' import { jest, expect } from '@jest/globals' -import { get } from '../helpers/e2etest.js' -import { checkCachingHeaders } from '../helpers/caching-headers.js' +import { get } from '../../../tests/helpers/e2etest.js' +import { checkCachingHeaders } from '../../../tests/helpers/caching-headers.js' function getNextStaticAsset(directory) { const root = path.join('.next', 'static', directory) diff --git a/src/pages/README.md b/src/pages/README.md index a3572580a2..ef61355b45 100644 --- a/src/pages/README.md +++ b/src/pages/README.md @@ -5,3 +5,5 @@ This is the Next.js pages directory. See There is almost no code in this directory, instead the actual pages live with their subject siblings. These files directly export from the page files in the relative subjects. + +TODO migrate code out of `_error.tsx`, `_document.tsx`, and `404.tsx`. diff --git a/tests/rendering-fixtures/images.js b/tests/rendering-fixtures/images.js index 8e6bf773e9..b405f571bd 100644 --- a/tests/rendering-fixtures/images.js +++ b/tests/rendering-fixtures/images.js @@ -1,6 +1,6 @@ import sharp from 'sharp' -import { get, head, getDOM } from '../helpers/e2etest.js' +import { get, head, getDOM } from '../../tests/helpers/e2etest.js' import { MAX_WIDTH } from '#src/content-render/unified/rewrite-asset-img-tags.js' describe('render Markdown image tags', () => {