@prairielearn/flash 2.0.16 → 2.0.18
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/CHANGELOG.md +14 -0
- package/dist/index.test.js +1 -1
- package/dist/index.test.js.map +1 -1
- package/package.json +8 -20
- package/src/index.test.ts +1 -1
- package/tsconfig.json +1 -1
- package/vitest.config.ts +11 -0
package/CHANGELOG.md
CHANGED
|
@@ -1,5 +1,19 @@
|
|
|
1
1
|
# @prairielearn/flash
|
|
2
2
|
|
|
3
|
+
## 2.0.18
|
|
4
|
+
|
|
5
|
+
### Patch Changes
|
|
6
|
+
|
|
7
|
+
- d97b97a: Upgrade all JavaScript dependencies
|
|
8
|
+
|
|
9
|
+
## 2.0.17
|
|
10
|
+
|
|
11
|
+
### Patch Changes
|
|
12
|
+
|
|
13
|
+
- be4444e: Upgrade all JavaScript dependencies
|
|
14
|
+
- Updated dependencies [be4444e]
|
|
15
|
+
- @prairielearn/html@4.0.15
|
|
16
|
+
|
|
3
17
|
## 2.0.16
|
|
4
18
|
|
|
5
19
|
### Patch Changes
|
package/dist/index.test.js
CHANGED
package/dist/index.test.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,
|
|
1
|
+
{"version":3,"file":"index.test.js","sourceRoot":"","sources":["../src/index.test.ts"],"names":[],"mappings":"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","sourcesContent":["import { assert, describe, it } from 'vitest';\n\nimport { html } from '@prairielearn/html';\n\nimport { flash, flashMiddleware } from './index.js';\n\ndescribe('flash', () => {\n it('throws an error if no session present', () => {\n assert.throw(() => {\n flashMiddleware()({} as any, {} as any, () => {\n flash('notice', 'Hello world');\n });\n }, 'No session found on request');\n });\n\n it('throws an error when middleware is not used', () => {\n assert.throw(() => {\n flash('notice', 'Hello world');\n }, 'flash() must be called within a request');\n assert.throw(() => {\n flash('notice', html`<p>hello ${'&'} world</p>`);\n }, 'flash() must be called within a request');\n });\n\n it('adds a flash using string message', () => {\n const req = {\n session: {},\n } as any;\n const res = {} as any;\n\n flashMiddleware()(req, res, () => {\n flash('notice', 'hello world');\n\n assert.sameDeepMembers(flash(), [{ type: 'notice', message: 'hello world' }]);\n });\n });\n\n it('adds a flash and escapes unsafe HTML', () => {\n const req = {\n session: {},\n } as any;\n const res = {} as any;\n\n flashMiddleware()(req, res, () => {\n flash('notice', '<b>hello world</b>');\n\n assert.sameDeepMembers(flash(), [\n { type: 'notice', message: '<b>hello world</b>' },\n ]);\n });\n });\n\n it('adds a flash with HTML-safe message', () => {\n const req = {\n session: {},\n } as any;\n const res = {} as any;\n\n flashMiddleware()(req, res, () => {\n flash('notice', html`<p>hello ${'&'} world</p>`);\n\n assert.sameDeepMembers(flash(), [{ type: 'notice', message: '<p>hello & world</p>' }]);\n });\n });\n\n it('stores multiples flashes with the same type', () => {\n const req = {\n session: {},\n } as any;\n const res = {} as any;\n\n flashMiddleware()(req, res, () => {\n flash('notice', 'hello world');\n flash('notice', '<< goodbye world');\n flash('notice', html`<p>hello ${'&'} world</p>`);\n\n assert.sameDeepMembers(flash(), [\n { type: 'notice', message: 'hello world' },\n { type: 'notice', message: '<< goodbye world' },\n { type: 'notice', message: '<p>hello & world</p>' },\n ]);\n });\n });\n\n it('returns flash message for a given type', () => {\n const req = {\n session: {},\n } as any;\n const res = {} as any;\n\n flashMiddleware()(req, res, () => {\n flash('notice', 'hello world');\n flash('error', '<< goodbye world');\n flash('success', html`<p>hello ${'&'} world</p>`);\n\n assert.sameDeepMembers(flash('notice'), [{ type: 'notice', message: 'hello world' }]);\n assert.sameDeepMembers(flash('error'), [\n { type: 'error', message: '<< goodbye world' },\n ]);\n assert.sameDeepMembers(flash('success'), [\n { type: 'success', message: '<p>hello & world</p>' },\n ]);\n });\n });\n\n it('returns all flashes', () => {\n const req = {\n session: {},\n } as any;\n const res = {} as any;\n\n flashMiddleware()(req, res, () => {\n flash('notice', 'hello world');\n flash('error', '<< goodbye world');\n flash('success', html`<p>hello ${'&'} world</p>`);\n\n assert.sameDeepMembers(flash(), [\n { type: 'notice', message: 'hello world' },\n { type: 'error', message: '<< goodbye world' },\n { type: 'success', message: '<p>hello & world</p>' },\n ]);\n });\n });\n\n it('clears flash after it has been read', () => {\n const req = {\n session: {},\n } as any;\n const res = {} as any;\n\n flashMiddleware()(req, res, () => {\n flash('notice', 'hello world');\n flash('error', '<< goodbye world');\n flash('success', html`<p>hello ${'&'} world</p>`);\n\n assert.sameDeepMembers(flash('notice'), [{ type: 'notice', message: 'hello world' }]);\n assert.sameDeepMembers(flash('error'), [\n { type: 'error', message: '<< goodbye world' },\n ]);\n assert.sameDeepMembers(flash('success'), [\n { type: 'success', message: '<p>hello & world</p>' },\n ]);\n\n assert.deepEqual(flash('notice'), []);\n assert.deepEqual(flash('error'), []);\n assert.deepEqual(flash('success'), []);\n assert.isEmpty(flash());\n });\n });\n});\n"]}
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@prairielearn/flash",
|
|
3
|
-
"version": "2.0.
|
|
3
|
+
"version": "2.0.18",
|
|
4
4
|
"type": "module",
|
|
5
5
|
"repository": {
|
|
6
6
|
"type": "git",
|
|
@@ -11,30 +11,18 @@
|
|
|
11
11
|
"scripts": {
|
|
12
12
|
"build": "tsc",
|
|
13
13
|
"dev": "tsc --watch --preserveWatchOutput",
|
|
14
|
-
"test": "
|
|
14
|
+
"test": "vitest run --coverage"
|
|
15
15
|
},
|
|
16
16
|
"dependencies": {
|
|
17
|
-
"@prairielearn/html": "^4.0.
|
|
18
|
-
"@types/express": "^4.17.
|
|
17
|
+
"@prairielearn/html": "^4.0.15",
|
|
18
|
+
"@types/express": "^4.17.22"
|
|
19
19
|
},
|
|
20
20
|
"devDependencies": {
|
|
21
21
|
"@prairielearn/tsconfig": "^0.0.0",
|
|
22
|
-
"@types/node": "^20.17.
|
|
23
|
-
"
|
|
24
|
-
"chai": "^5.2.0",
|
|
25
|
-
"mocha": "^11.1.0",
|
|
22
|
+
"@types/node": "^20.17.57",
|
|
23
|
+
"@vitest/coverage-v8": "^3.2.1",
|
|
26
24
|
"tsx": "^4.19.4",
|
|
27
|
-
"typescript": "^5.8.3"
|
|
28
|
-
|
|
29
|
-
"c8": {
|
|
30
|
-
"reporter": [
|
|
31
|
-
"html",
|
|
32
|
-
"text-summary",
|
|
33
|
-
"cobertura"
|
|
34
|
-
],
|
|
35
|
-
"all": true,
|
|
36
|
-
"include": [
|
|
37
|
-
"src/**"
|
|
38
|
-
]
|
|
25
|
+
"typescript": "^5.8.3",
|
|
26
|
+
"vitest": "^3.2.1"
|
|
39
27
|
}
|
|
40
28
|
}
|
package/src/index.test.ts
CHANGED
package/tsconfig.json
CHANGED