diff --git a/examples/logjam/package.json b/examples/logjam/package.json new file mode 100644 index 0000000..8a00d33 --- /dev/null +++ b/examples/logjam/package.json @@ -0,0 +1,24 @@ +{ + "name": "logjam", + "version": "1.0.0", + "type": "module", + "scripts": { + "start": "vitest --ui", + "test": "vitest" + }, + "repository": { + "type": "git", + "url": "git+https://github.com/stevekinney/testing-javascript.git" + }, + "author": "Steve Kinney ", + "license": "MIT", + "bugs": { + "url": "https://github.com/stevekinney/testing-javascript/issues" + }, + "homepage": "https://github.com/stevekinney/testing-javascript#readme", + "devDependencies": { + "@vitest/ui": "^2.1.1", + "vite": "^5.4.5", + "vitest": "^2.1.1" + } +} diff --git a/examples/logjam/src/log.js b/examples/logjam/src/log.js new file mode 100644 index 0000000..37eca0d --- /dev/null +++ b/examples/logjam/src/log.js @@ -0,0 +1,19 @@ +/// + +export function log(...args) { + if (import.meta.env.MODE !== 'production') { + console.log(...args); + } +} + +log.error = function error(...args) { + if (import.meta.env.MODE !== 'production') { + console.log(...args); + } +}; + +log.warn = function warn(...args) { + if (import.meta.env.MODE !== 'production') { + console.warn(...args); + } +}; diff --git a/examples/logjam/src/log.test.js b/examples/logjam/src/log.test.js new file mode 100644 index 0000000..35d5a82 --- /dev/null +++ b/examples/logjam/src/log.test.js @@ -0,0 +1,14 @@ +import { expect, it, vi, beforeEach, afterEach, describe } from 'vitest'; +import { log } from './log'; + +describe.todo('logger', () => { + it('logs to the console in development mode', () => { + const spy = vi.spyOn(console, 'log'); + + log('Hello, world!'); + + expect(spy).toHaveBeenCalledWith('Hello, world!'); + + spy.mockRestore(); + }); +}); diff --git a/package-lock.json b/package-lock.json index bdf6703..3259b87 100644 --- a/package-lock.json +++ b/package-lock.json @@ -21,7 +21,8 @@ "examples/scratchpad", "examples/utility-belt", "examples/strictly-speaking", - "examples/button-factory" + "examples/button-factory", + "examples/logjam" ], "devDependencies": { "prettier": "^3.3.3", @@ -128,6 +129,11 @@ "url": "https://github.com/chalk/chalk?sponsor=1" } }, + "examples/logjam": { + "version": "1.0.0", + "license": "ISC", + "devDependencies": {} + }, "examples/scratchpad": { "extraneous": true }, @@ -3308,6 +3314,10 @@ "dev": true, "license": "MIT" }, + "node_modules/logjam": { + "resolved": "examples/logjam", + "link": true + }, "node_modules/loose-envify": { "version": "1.4.0", "license": "MIT", diff --git a/package.json b/package.json index 37b50d7..6b920b1 100644 --- a/package.json +++ b/package.json @@ -38,7 +38,8 @@ "examples/scratchpad", "examples/utility-belt", "examples/strictly-speaking", - "examples/button-factory" + "examples/button-factory", + "examples/logjam" ], "devDependencies": { "prettier": "^3.3.3", diff --git a/types.d.ts b/types.d.ts new file mode 100644 index 0000000..11f02fe --- /dev/null +++ b/types.d.ts @@ -0,0 +1 @@ +///