Skip to content

Commit

Permalink
refactor into test-engine
Browse files Browse the repository at this point in the history
  • Loading branch information
mnot committed Jul 11, 2023
1 parent 4633dd7 commit b10bc09
Show file tree
Hide file tree
Showing 47 changed files with 67 additions and 103 deletions.
12 changes: 6 additions & 6 deletions index.html
Original file line number Diff line number Diff line change
Expand Up @@ -10,14 +10,14 @@
<meta property="og:url" content="https://cache-tests.fyi/">
<meta property="og:site_name" content="HTTP Caching Tests">
<meta property="og:image" content="https://cache-tests.fyi/asset/badge.png">
<link rel="preload" as="fetch" crossorigin href="/lib/tpl/explain-test.liquid">
<link rel="preload" as="fetch" crossorigin href="/lib/tpl/checks.liquid">
<link rel="preload" as="fetch" crossorigin href="/lib/tpl/header-list.liquid">
<link rel="preload" as="fetch" crossorigin href="/lib/tpl/header-magic.liquid">
<link rel="preload" as="fetch" crossorigin href="/test-engine/lib/tpl/explain-test.liquid">
<link rel="preload" as="fetch" crossorigin href="/test-engine/lib/tpl/checks.liquid">
<link rel="preload" as="fetch" crossorigin href="/test-engine/lib/tpl/header-list.liquid">
<link rel="preload" as="fetch" crossorigin href="/test-engine/lib/tpl/header-magic.liquid">
<script type="module">
import index from './results/index.mjs'
import * as summary from './lib/summary.mjs'
import * as display from './lib/display.mjs'
import * as summary from './test-engine/lib/summary.mjs'
import * as display from './test-engine/lib/display.mjs'
import baseTests from './tests/index.mjs'
import surrogate from './tests/surrogate-control.mjs'

Expand Down
14 changes: 7 additions & 7 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -16,12 +16,12 @@
"npm": "^6.14.11"
},
"scripts": {
"server": "node server/server.mjs",
"cli": "node --no-warnings cli.mjs",
"export": "node --no-warnings export.mjs",
"validate": "node --no-warnings export.mjs validate",
"lint": "standard *.mjs client/*.mjs server/*.mjs lib/*.mjs tests/*.mjs spec/*.mjs",
"fix": "standard --fix *.mjs client/*.mjs server/*.mjs lib/*.mjs tests/*.mjs spec/*.mjs"
"server": "node test-engine/server/server.mjs",
"cli": "node --no-warnings test-engine/cli.mjs",
"export": "node --no-warnings test-engine/export.mjs",
"validate": "node --no-warnings test-engine/export.mjs validate",
"lint": "standard test-engine tests spec",
"fix": "standard --fix test-engine tests spec"
},
"config": {
"protocol": "http",
Expand All @@ -37,6 +37,6 @@
"devDependencies": {
"ajv": "^6.12.5",
"font-awesome": "^4.7.0",
"standard": "^14.3.4"
"standard": "^17.1.0"
}
}
6 changes: 3 additions & 3 deletions test-browser.html
Original file line number Diff line number Diff line change
Expand Up @@ -5,9 +5,9 @@
<title>Browser HTTP Caching Tests</title>
<link rel="stylesheet" href="style.css" type="text/css">
<script type="module">
import { runTests, getResults } from './client/runner.mjs'
import { testUUIDs } from './client/test.mjs'
import * as display from './lib/display.mjs'
import { runTests, getResults } from './test-engine/client/runner.mjs'
import { testUUIDs } from './test-engine/client/test.mjs'
import * as display from './test-engine/lib/display.mjs'
import baseTests from './tests/index.mjs'

runTests(baseTests, fetch, true)
Expand Down
4 changes: 2 additions & 2 deletions test-engine/cli.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,8 +2,8 @@ import { runTests, getResults } from './client/runner.mjs'
import * as display from './lib/display.mjs'
import { GREEN, NC } from './lib/defines.mjs'
import fetch from 'node-fetch-with-proxy'
import tests from './tests/index.mjs'
import surrogate from './tests/surrogate-control.mjs'
import tests from '../tests/index.mjs'
import surrogate from '../tests/surrogate-control.mjs'

tests.push(surrogate)

Expand Down
1 change: 0 additions & 1 deletion test-engine/client/config.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export let fetch = null
export let useBrowserCache = false
export let baseUrl = ''
Expand Down
1 change: 0 additions & 1 deletion test-engine/client/fetching.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

import * as config from './config.mjs'
import { fixupHeader } from '../lib/header-fixup.mjs'

Expand Down
1 change: 0 additions & 1 deletion test-engine/client/runner.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

import * as config from './config.mjs'
import { makeTest, testResults } from './test.mjs'

Expand Down
1 change: 0 additions & 1 deletion test-engine/client/test.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

import * as defines from '../lib/defines.mjs'
import { fixupHeader } from '../lib/header-fixup.mjs'
import * as utils from '../lib/utils.mjs'
Expand Down
1 change: 0 additions & 1 deletion test-engine/client/utils.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

import * as config from './config.mjs'
import * as utils from '../lib/utils.mjs'
import * as defines from '../lib/defines.mjs'
Expand Down
6 changes: 3 additions & 3 deletions test-engine/export.mjs
Original file line number Diff line number Diff line change
Expand Up @@ -2,14 +2,14 @@ import fs from 'fs'

import Ajv from 'ajv'

import tests from './tests/index.mjs'
import surrogate from './tests/surrogate-control.mjs'
import tests from '../tests/index.mjs'
import surrogate from '../tests/surrogate-control.mjs'

tests.push(surrogate)

if (process.argv[2] === 'validate') {
const ajv = new Ajv()
const schema = JSON.parse(fs.readFileSync('lib/testsuite-schema.json', 'utf8'))
const schema = JSON.parse(fs.readFileSync('test-engine/lib/testsuite-schema.json', 'utf8'))
const validate = ajv.compile(schema)
const valid = validate(tests)
if (!valid) {
Expand Down
1 change: 0 additions & 1 deletion test-engine/lib/defines.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export const noBodyStatus = new Set([204, 304])

export const dateHeaders = new Set(['date', 'expires', 'last-modified', 'if-modified-since', 'if-unmodified-since'])
Expand Down
6 changes: 3 additions & 3 deletions test-engine/lib/display.mjs
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
/* global Blob marked */

import '../asset/marked.min.js'
import { Liquid } from '../asset/liquid.browser.esm.mjs'
import '../../asset/marked.min.js'
import { Liquid } from '../../asset/liquid.browser.esm.mjs'
import { modalOpen } from './modal.mjs'

const templateEngine = new Liquid({ root: 'lib/tpl', extname: '.liquid', cache: true })
Expand Down Expand Up @@ -113,7 +113,7 @@ export function showTestResult (testSuites, testId, testResults) {

export function showTestDetails (test) {
templateEngine
.renderFile('explain-test', { test: test })
.renderFile('explain-test', { test })
.then(result => {
console.log(result)
const html = marked.parse(result)
Expand Down
1 change: 0 additions & 1 deletion test-engine/lib/header-fixup.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

import { locationHeaders, dateHeaders } from './defines.mjs'
import { httpDate } from './utils.mjs'

Expand Down
1 change: 0 additions & 1 deletion test-engine/lib/modal.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export function modalOpen (content) {
let modal = document.getElementById('modal')
if (!modal) {
Expand Down
2 changes: 1 addition & 1 deletion test-engine/lib/summary.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
/* global fetch marked */

import '../asset/marked.min.js'
import '../../asset/marked.min.js'
import * as display from './display.mjs'

export function loadResults (index) {
Expand Down
26 changes: 2 additions & 24 deletions test-engine/lib/utils.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export function AssertionError (options) {
this.name = 'Assertion'
this.message = options.message
Expand All @@ -12,30 +11,9 @@ export function SetupError (options) {
export function assert (isSetup, expr, message) {
if (expr) return
if (isSetup) {
throw new SetupError({ message: message })
throw new SetupError({ message })
} else {
throw new AssertionError({ message: message })
}
}

const contentSeed = 1
const contentStore = {}
export function httpContent (csKey, contentLength = 15) {
if (csKey in contentStore) {
return contentStore[csKey]
} else {
let keySeed = 0
for (let i = 0; i < csKey.length; i++) {
keySeed += csKey.charCodeAt(i)
}
const contents = []
for (let i = 0; i < contentLength; ++i) {
const idx = ((i * keySeed * contentSeed) % 26) + 97
contents.push(String.fromCharCode(idx))
}
const content = contents.join('')
contentStore[csKey] = content
return content
throw new AssertionError({ message })
}
}

Expand Down
1 change: 0 additions & 1 deletion test-engine/server/handle-config.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

import { sendResponse, configs, setConfig } from './utils.mjs'

export default function handleConfig (pathSegs, request, response) {
Expand Down
1 change: 0 additions & 1 deletion test-engine/server/handle-file.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

import fs from 'fs'
import path from 'path'
import process from 'process'
Expand Down
1 change: 0 additions & 1 deletion test-engine/server/handle-state.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

import { sendResponse, stash } from './utils.mjs'

export default function handleState (pathSegs, request, response) {
Expand Down
1 change: 0 additions & 1 deletion test-engine/server/handle-test.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

import { noBodyStatus } from '../lib/defines.mjs'
import { fixupHeader } from '../lib/header-fixup.mjs'
import { sendResponse, getHeader, configs, stash, setStash, logRequest, logResponse } from './utils.mjs'
Expand Down
1 change: 0 additions & 1 deletion test-engine/server/utils.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

import { BLUE, NC } from '../lib/defines.mjs'

export function sendResponse (response, statusCode, message) {
Expand Down
1 change: 0 additions & 1 deletion tests/authorization.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export default

{
Expand Down
1 change: 0 additions & 1 deletion tests/cc-freshness.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export default

{
Expand Down
1 change: 0 additions & 1 deletion tests/cc-parse.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export default

{
Expand Down
5 changes: 2 additions & 3 deletions tests/cc-request.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@

import * as templates from '../lib/templates.mjs'
import * as utils from '../lib/utils.mjs'
import * as templates from './lib/templates.mjs'
import * as utils from './lib/utils.mjs'

export default {
name: 'Cache-Control Request Directives',
Expand Down
1 change: 0 additions & 1 deletion tests/cc-response.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export default

{
Expand Down
1 change: 0 additions & 1 deletion tests/cdn-cache-control.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export default

{
Expand Down
1 change: 0 additions & 1 deletion tests/conditional-etag.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export default {
name: 'Conditional Requests: If-None-Match and ETag',
id: 'conditional-inm',
Expand Down
1 change: 0 additions & 1 deletion tests/conditional-lm.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export default {
name: 'Conditional Requests: If-Modified-Since and Last-Modified',
id: 'conditional-lm',
Expand Down
1 change: 0 additions & 1 deletion tests/expires-freshness.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export default

{
Expand Down
1 change: 0 additions & 1 deletion tests/expires-parse.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export default

{
Expand Down
4 changes: 2 additions & 2 deletions tests/headers.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as utils from '../lib/utils.mjs'
import headerList from './header-list.mjs'
import * as utils from './lib/utils.mjs'
import headerList from './lib/header-list.mjs'

const tests = []

Expand Down
4 changes: 2 additions & 2 deletions tests/heuristic-freshness.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,4 @@
import * as utils from '../lib/utils.mjs'
import * as utils from './lib/utils.mjs'

const tests = []

Expand Down Expand Up @@ -91,5 +91,5 @@ export default {
id: 'heuristic',
description: 'These tests check how caches handle heuristic freshness.',
spec_anchors: ['heuristic.freshness'],
tests: tests
tests
}
5 changes: 2 additions & 3 deletions tests/invalidation.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

import * as templates from '../lib/templates.mjs'
import * as templates from './lib/templates.mjs'

const tests = []

Expand Down Expand Up @@ -93,5 +92,5 @@ export default {
id: 'invalidation',
description: 'These tests check how caches support invalidation, including when it is triggered by the `Location` and `Content-Location` response headers.',
spec_anchors: ['invalidation'],
tests: tests
tests
}
1 change: 0 additions & 1 deletion tests/header-list.mjs → tests/lib/header-list.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export default [
{
name: 'Test-Header',
Expand Down
File renamed without changes.
20 changes: 20 additions & 0 deletions tests/lib/utils.mjs
Original file line number Diff line number Diff line change
@@ -0,0 +1,20 @@
const contentSeed = 1
const contentStore = {}
export function httpContent (csKey, contentLength = 15) {
if (csKey in contentStore) {
return contentStore[csKey]
} else {
let keySeed = 0
for (let i = 0; i < csKey.length; i++) {
keySeed += csKey.charCodeAt(i)
}
const contents = []
for (let i = 0; i < contentLength; ++i) {
const idx = ((i * keySeed * contentSeed) % 26) + 97
contents.push(String.fromCharCode(idx))
}
const content = contents.join('')
contentStore[csKey] = content
return content
}
}
1 change: 0 additions & 1 deletion tests/method.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export default

{
Expand Down
5 changes: 2 additions & 3 deletions tests/other.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@

import * as templates from '../lib/templates.mjs'
import * as utils from '../lib/utils.mjs'
import * as templates from './lib/templates.mjs'
import * as utils from './lib/utils.mjs'

export default

Expand Down
1 change: 0 additions & 1 deletion tests/pragma.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export default

{
Expand Down
3 changes: 1 addition & 2 deletions tests/stale.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,4 @@

import * as templates from '../lib/templates.mjs'
import * as templates from './lib/templates.mjs'

function makeStaleCheckCC (cc, value) {
return {
Expand Down
7 changes: 3 additions & 4 deletions tests/status.mjs
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@

import * as templates from '../lib/templates.mjs'
import * as utils from '../lib/utils.mjs'
import * as templates from './lib/templates.mjs'
import * as utils from './lib/utils.mjs'

const tests = []

Expand Down Expand Up @@ -115,5 +114,5 @@ export default {
id: 'status',
description: 'These tests check to see if a cache will store and reuse various status codes when they have explicit freshness information associated with them.',
spec_anchors: ['response.cacheability'],
tests: tests
tests
}
1 change: 0 additions & 1 deletion tests/surrogate-control.mjs
Original file line number Diff line number Diff line change
@@ -1,4 +1,3 @@

export default

{
Expand Down
6 changes: 3 additions & 3 deletions tests/update304.mjs
Original file line number Diff line number Diff line change
@@ -1,5 +1,5 @@
import * as utils from '../lib/utils.mjs'
import headerList from './header-list.mjs'
import * as utils from './lib/utils.mjs'
import headerList from './lib/header-list.mjs'

const tests = []

Expand Down Expand Up @@ -120,5 +120,5 @@ export default {
id: 'update304',
description: 'These tests check cache behaviour upon receiving a `304 Not Modified` response.',
spec_anchors: ['freshening.responses'],
tests: tests
tests
}
Loading

0 comments on commit b10bc09

Please sign in to comment.