diff --git a/configurer/index.ts b/configurer/index.ts index d705cc1..34020ae 100644 --- a/configurer/index.ts +++ b/configurer/index.ts @@ -7,7 +7,7 @@ * file that was distributed with this source code. */ -import { File } from '@athenna/common' +import { File, Path } from '@athenna/common' import { BaseConfigurer } from '@athenna/artisan' export default class MailConfigurer extends BaseConfigurer { diff --git a/package-lock.json b/package-lock.json index 83e2550..7da02f7 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,12 +1,12 @@ { "name": "@athenna/mail", - "version": "4.14.0", + "version": "4.15.0", "lockfileVersion": 2, "requires": true, "packages": { "": { "name": "@athenna/mail", - "version": "4.14.0", + "version": "4.15.0", "license": "MIT", "dependencies": { "nodemailer": "^6.9.9", @@ -14,14 +14,14 @@ "smtp-server": "^3.13.2" }, "devDependencies": { - "@athenna/artisan": "^4.37.0", - "@athenna/common": "^4.34.0", - "@athenna/config": "^4.16.0", - "@athenna/ioc": "^4.16.0", - "@athenna/logger": "^4.17.0", + "@athenna/artisan": "^4.40.0", + "@athenna/common": "^4.35.0", + "@athenna/config": "^4.19.0", + "@athenna/ioc": "^4.18.0", + "@athenna/logger": "^4.18.0", "@athenna/test": "^4.22.0", "@athenna/tsconfig": "^4.12.0", - "@athenna/view": "^4.18.0", + "@athenna/view": "^4.20.0", "@types/nodemailer": "^6.4.7", "@types/smtp-server": "^3.5.7", "@typescript-eslint/eslint-plugin": "^6.7.4", @@ -71,9 +71,9 @@ "dev": true }, "node_modules/@athenna/artisan": { - "version": "4.37.0", - "resolved": "https://registry.npmjs.org/@athenna/artisan/-/artisan-4.37.0.tgz", - "integrity": "sha512-Zyfn/M3IEM094Cx4FXi8cXpGhbQSGiKiTGCmqNFT9QFaXt5ehON56GNq35sHDt884iRci8boyanN8c2xsWyqnA==", + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@athenna/artisan/-/artisan-4.40.0.tgz", + "integrity": "sha512-y0JQzRDu6egmU6gkw3qSjVR2VdUVoGiL36S5BUBsejlrMAevl2dSQHZbozcsuzQlEqY9PgL2GPjsjRfdiF9cig==", "dev": true, "dependencies": { "chalk-rainbow": "^1.0.0", @@ -82,7 +82,7 @@ "columnify": "^1.6.0", "commander": "^9.5.0", "figlet": "^1.7.0", - "inquirer": "^9.2.13", + "inquirer": "^9.2.14", "log-update": "^5.0.1", "ora": "^6.3.1" }, @@ -530,9 +530,9 @@ } }, "node_modules/@athenna/common": { - "version": "4.34.0", - "resolved": "https://registry.npmjs.org/@athenna/common/-/common-4.34.0.tgz", - "integrity": "sha512-2rIUEB4M7AsUXC8wNotTrVmuFj2PpJao41otaM3yMa7A8rc7c+aRIMHgX/IMk4wfOy3ajdF5v9cEkn6W/6skUw==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@athenna/common/-/common-4.35.0.tgz", + "integrity": "sha512-f5JRdrjdozbtHjG0YgqVLXv6fjmss7PKAQWeyqGLg4dpGmheZ19xXYONZYf3ng6d0k2+YQ7IjLzGmfwSsrO+wA==", "dev": true, "dependencies": { "@fastify/formbody": "^7.4.0", @@ -543,7 +543,7 @@ "collect.js": "^4.36.1", "csv-parser": "^3.0.0", "execa": "^8.0.1", - "fastify": "^4.26.0", + "fastify": "^4.26.1", "got": "^12.6.1", "http-status-codes": "^2.2.0", "is-wsl": "^2.2.0", @@ -761,12 +761,12 @@ } }, "node_modules/@athenna/config": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@athenna/config/-/config-4.16.0.tgz", - "integrity": "sha512-uR0hyTApbaOp1YK143BkeczeygbU8SmLHnJLwRAweplauDydRW8TZw9pETO1w1TwMnK6iDobjl/GX2NWoid6rw==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@athenna/config/-/config-4.19.0.tgz", + "integrity": "sha512-RC6gqSIuOaIvMgdhlTaZqgsraJgffx/SgLPUX0ARkJuGHA/R0Tcw5iqtNu6GVfBVRjqSUe1BlP6pi6FXjxSfpg==", "dev": true, "dependencies": { - "dotenv": "^16.4.0", + "dotenv": "^16.4.1", "magicast": "^0.3.3", "syntax-error": "^1.4.0" }, @@ -775,9 +775,9 @@ } }, "node_modules/@athenna/ioc": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@athenna/ioc/-/ioc-4.16.0.tgz", - "integrity": "sha512-oq6PP26VMOmdyMqTbv/iaGrP1ACK7mVVsyAyTc+z8xrpLyAeQ++r53bAK7obZz+LIPDNNPd/cgmk6WH0zq6paA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@athenna/ioc/-/ioc-4.18.0.tgz", + "integrity": "sha512-Ocz7Miaj5dvtnp66brol9Bf6vU97XaBfeXP+RfQtzSyyQs70nSIvCmIXK4oAya15OqHFpqJtR6JXikkQuOVIXw==", "dev": true, "dependencies": { "awilix": "^7.0.3" @@ -787,9 +787,9 @@ } }, "node_modules/@athenna/logger": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/@athenna/logger/-/logger-4.17.0.tgz", - "integrity": "sha512-Xlaz56JVyyy4BrsaqGlHyR2WahDN7aW4r+WdkYDU40EluOFeisSBg/dR8PBZzIohMUFZEJHye+G+d7DoNEGNDg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@athenna/logger/-/logger-4.18.0.tgz", + "integrity": "sha512-mUGqj5Guh6ZdYflijGAdnn6Zrse2I7SG9fj5jMxSdrQ3hFMCGIgpWIk/ctXCGhPnsHlrVfAmEJeqnCxbtaytZQ==", "dev": true, "dependencies": { "@aws-lambda-powertools/logger": "^1.18.0", @@ -896,9 +896,9 @@ } }, "node_modules/@athenna/view": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@athenna/view/-/view-4.18.0.tgz", - "integrity": "sha512-PnBShkzzXeGtI2kfYOfN7JmE/Y+vpDRx7QDGyHhpH9vzyDG8tMABq34kkLjyiY2EgNtm25ZmYERQV8N3IFL/jQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@athenna/view/-/view-4.20.0.tgz", + "integrity": "sha512-eAoCPn53GM5zGU9lY0rTNnv8PTSmYNMauy1w9/8BE0OAuedN0a0qVt2W1E1m9IJDsYd29dmV/K63xL6fOR8Ydw==", "dev": true, "dependencies": { "edge.js": "^6.0.1" @@ -5443,9 +5443,9 @@ "dev": true }, "node_modules/fastify": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.26.0.tgz", - "integrity": "sha512-Fq/7ziWKc6pYLYLIlCRaqJqEVTIZ5tZYfcW/mDK2AQ9v/sqjGFpj0On0/7hU50kbPVjLO4de+larPA1WwPZSfw==", + "version": "4.26.2", + "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.26.2.tgz", + "integrity": "sha512-90pjTuPGrfVKtdpLeLzND5nyC4woXZN5VadiNQCicj/iJU4viNHKhsAnb7jmv1vu2IzkLXyBiCzdWuzeXgQ5Ug==", "dev": true, "funding": [ { @@ -5462,7 +5462,7 @@ "@fastify/error": "^3.4.0", "@fastify/fast-json-stringify-compiler": "^4.3.0", "abstract-logging": "^2.0.1", - "avvio": "^8.2.1", + "avvio": "^8.3.0", "fast-content-type-parse": "^1.1.0", "fast-json-stringify": "^5.8.0", "find-my-way": "^8.0.0", @@ -7514,16 +7514,25 @@ } }, "node_modules/light-my-request": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.11.0.tgz", - "integrity": "sha512-qkFCeloXCOMpmEdZ/MV91P8AT4fjwFXWaAFz3lUeStM8RcoM1ks4J/F8r1b3r6y/H4u3ACEJ1T+Gv5bopj7oDA==", + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.11.1.tgz", + "integrity": "sha512-KXAh2m6VRlkWCk2KfmHE7tLBXKh30JE0tXUJY4dNxje4oLmPKUqlUfImiEQZLphx+Z9KTQcVv4DjGnJxkVOIbA==", "dev": true, "dependencies": { - "cookie": "^0.5.0", + "cookie": "^0.6.0", "process-warning": "^2.0.0", "set-cookie-parser": "^2.4.1" } }, + "node_modules/light-my-request/node_modules/cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true, + "engines": { + "node": ">= 0.6" + } + }, "node_modules/light-my-request/node_modules/process-warning": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.3.2.tgz", @@ -8675,9 +8684,9 @@ } }, "node_modules/pino": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.18.0.tgz", - "integrity": "sha512-Mz/gKiRyuXu4HnpHgi1YWdHQCoWMufapzooisvFn78zl4dZciAxS+YeRkUxXl1ee/SzU80YCz1zpECCh4oC6Aw==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.19.0.tgz", + "integrity": "sha512-oswmokxkav9bADfJ2ifrvfHUwad6MLp73Uat0IkQWY3iAw5xTRoznXbXksZs8oaOUMpmhVWD+PZogNzllWpJaA==", "dev": true, "dependencies": { "atomic-sleep": "^1.0.0", @@ -10822,9 +10831,9 @@ "dev": true }, "@athenna/artisan": { - "version": "4.37.0", - "resolved": "https://registry.npmjs.org/@athenna/artisan/-/artisan-4.37.0.tgz", - "integrity": "sha512-Zyfn/M3IEM094Cx4FXi8cXpGhbQSGiKiTGCmqNFT9QFaXt5ehON56GNq35sHDt884iRci8boyanN8c2xsWyqnA==", + "version": "4.40.0", + "resolved": "https://registry.npmjs.org/@athenna/artisan/-/artisan-4.40.0.tgz", + "integrity": "sha512-y0JQzRDu6egmU6gkw3qSjVR2VdUVoGiL36S5BUBsejlrMAevl2dSQHZbozcsuzQlEqY9PgL2GPjsjRfdiF9cig==", "dev": true, "requires": { "chalk-rainbow": "^1.0.0", @@ -10833,7 +10842,7 @@ "columnify": "^1.6.0", "commander": "^9.5.0", "figlet": "^1.7.0", - "inquirer": "^9.2.13", + "inquirer": "^9.2.14", "log-update": "^5.0.1", "ora": "^6.3.1" }, @@ -11144,9 +11153,9 @@ } }, "@athenna/common": { - "version": "4.34.0", - "resolved": "https://registry.npmjs.org/@athenna/common/-/common-4.34.0.tgz", - "integrity": "sha512-2rIUEB4M7AsUXC8wNotTrVmuFj2PpJao41otaM3yMa7A8rc7c+aRIMHgX/IMk4wfOy3ajdF5v9cEkn6W/6skUw==", + "version": "4.35.0", + "resolved": "https://registry.npmjs.org/@athenna/common/-/common-4.35.0.tgz", + "integrity": "sha512-f5JRdrjdozbtHjG0YgqVLXv6fjmss7PKAQWeyqGLg4dpGmheZ19xXYONZYf3ng6d0k2+YQ7IjLzGmfwSsrO+wA==", "dev": true, "requires": { "@fastify/formbody": "^7.4.0", @@ -11157,7 +11166,7 @@ "collect.js": "^4.36.1", "csv-parser": "^3.0.0", "execa": "^8.0.1", - "fastify": "^4.26.0", + "fastify": "^4.26.1", "got": "^12.6.1", "http-status-codes": "^2.2.0", "is-wsl": "^2.2.0", @@ -11296,29 +11305,29 @@ } }, "@athenna/config": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@athenna/config/-/config-4.16.0.tgz", - "integrity": "sha512-uR0hyTApbaOp1YK143BkeczeygbU8SmLHnJLwRAweplauDydRW8TZw9pETO1w1TwMnK6iDobjl/GX2NWoid6rw==", + "version": "4.19.0", + "resolved": "https://registry.npmjs.org/@athenna/config/-/config-4.19.0.tgz", + "integrity": "sha512-RC6gqSIuOaIvMgdhlTaZqgsraJgffx/SgLPUX0ARkJuGHA/R0Tcw5iqtNu6GVfBVRjqSUe1BlP6pi6FXjxSfpg==", "dev": true, "requires": { - "dotenv": "^16.4.0", + "dotenv": "^16.4.1", "magicast": "^0.3.3", "syntax-error": "^1.4.0" } }, "@athenna/ioc": { - "version": "4.16.0", - "resolved": "https://registry.npmjs.org/@athenna/ioc/-/ioc-4.16.0.tgz", - "integrity": "sha512-oq6PP26VMOmdyMqTbv/iaGrP1ACK7mVVsyAyTc+z8xrpLyAeQ++r53bAK7obZz+LIPDNNPd/cgmk6WH0zq6paA==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@athenna/ioc/-/ioc-4.18.0.tgz", + "integrity": "sha512-Ocz7Miaj5dvtnp66brol9Bf6vU97XaBfeXP+RfQtzSyyQs70nSIvCmIXK4oAya15OqHFpqJtR6JXikkQuOVIXw==", "dev": true, "requires": { "awilix": "^7.0.3" } }, "@athenna/logger": { - "version": "4.17.0", - "resolved": "https://registry.npmjs.org/@athenna/logger/-/logger-4.17.0.tgz", - "integrity": "sha512-Xlaz56JVyyy4BrsaqGlHyR2WahDN7aW4r+WdkYDU40EluOFeisSBg/dR8PBZzIohMUFZEJHye+G+d7DoNEGNDg==", + "version": "4.18.0", + "resolved": "https://registry.npmjs.org/@athenna/logger/-/logger-4.18.0.tgz", + "integrity": "sha512-mUGqj5Guh6ZdYflijGAdnn6Zrse2I7SG9fj5jMxSdrQ3hFMCGIgpWIk/ctXCGhPnsHlrVfAmEJeqnCxbtaytZQ==", "dev": true, "requires": { "@aws-lambda-powertools/logger": "^1.18.0", @@ -11397,9 +11406,9 @@ } }, "@athenna/view": { - "version": "4.18.0", - "resolved": "https://registry.npmjs.org/@athenna/view/-/view-4.18.0.tgz", - "integrity": "sha512-PnBShkzzXeGtI2kfYOfN7JmE/Y+vpDRx7QDGyHhpH9vzyDG8tMABq34kkLjyiY2EgNtm25ZmYERQV8N3IFL/jQ==", + "version": "4.20.0", + "resolved": "https://registry.npmjs.org/@athenna/view/-/view-4.20.0.tgz", + "integrity": "sha512-eAoCPn53GM5zGU9lY0rTNnv8PTSmYNMauy1w9/8BE0OAuedN0a0qVt2W1E1m9IJDsYd29dmV/K63xL6fOR8Ydw==", "dev": true, "requires": { "edge.js": "^6.0.1" @@ -14768,16 +14777,16 @@ "dev": true }, "fastify": { - "version": "4.26.0", - "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.26.0.tgz", - "integrity": "sha512-Fq/7ziWKc6pYLYLIlCRaqJqEVTIZ5tZYfcW/mDK2AQ9v/sqjGFpj0On0/7hU50kbPVjLO4de+larPA1WwPZSfw==", + "version": "4.26.2", + "resolved": "https://registry.npmjs.org/fastify/-/fastify-4.26.2.tgz", + "integrity": "sha512-90pjTuPGrfVKtdpLeLzND5nyC4woXZN5VadiNQCicj/iJU4viNHKhsAnb7jmv1vu2IzkLXyBiCzdWuzeXgQ5Ug==", "dev": true, "requires": { "@fastify/ajv-compiler": "^3.5.0", "@fastify/error": "^3.4.0", "@fastify/fast-json-stringify-compiler": "^4.3.0", "abstract-logging": "^2.0.1", - "avvio": "^8.2.1", + "avvio": "^8.3.0", "fast-content-type-parse": "^1.1.0", "fast-json-stringify": "^5.8.0", "find-my-way": "^8.0.0", @@ -16287,16 +16296,22 @@ } }, "light-my-request": { - "version": "5.11.0", - "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.11.0.tgz", - "integrity": "sha512-qkFCeloXCOMpmEdZ/MV91P8AT4fjwFXWaAFz3lUeStM8RcoM1ks4J/F8r1b3r6y/H4u3ACEJ1T+Gv5bopj7oDA==", + "version": "5.11.1", + "resolved": "https://registry.npmjs.org/light-my-request/-/light-my-request-5.11.1.tgz", + "integrity": "sha512-KXAh2m6VRlkWCk2KfmHE7tLBXKh30JE0tXUJY4dNxje4oLmPKUqlUfImiEQZLphx+Z9KTQcVv4DjGnJxkVOIbA==", "dev": true, "requires": { - "cookie": "^0.5.0", + "cookie": "^0.6.0", "process-warning": "^2.0.0", "set-cookie-parser": "^2.4.1" }, "dependencies": { + "cookie": { + "version": "0.6.0", + "resolved": "https://registry.npmjs.org/cookie/-/cookie-0.6.0.tgz", + "integrity": "sha512-U71cyTamuh1CRNCfpGY6to28lxvNwPG4Guz/EVjgf3Jmzv0vlDp1atT9eS5dDjMYHucpHbWns6Lwf3BKz6svdw==", + "dev": true + }, "process-warning": { "version": "2.3.2", "resolved": "https://registry.npmjs.org/process-warning/-/process-warning-2.3.2.tgz", @@ -17162,9 +17177,9 @@ "dev": true }, "pino": { - "version": "8.18.0", - "resolved": "https://registry.npmjs.org/pino/-/pino-8.18.0.tgz", - "integrity": "sha512-Mz/gKiRyuXu4HnpHgi1YWdHQCoWMufapzooisvFn78zl4dZciAxS+YeRkUxXl1ee/SzU80YCz1zpECCh4oC6Aw==", + "version": "8.19.0", + "resolved": "https://registry.npmjs.org/pino/-/pino-8.19.0.tgz", + "integrity": "sha512-oswmokxkav9bADfJ2ifrvfHUwad6MLp73Uat0IkQWY3iAw5xTRoznXbXksZs8oaOUMpmhVWD+PZogNzllWpJaA==", "dev": true, "requires": { "atomic-sleep": "^1.0.0", diff --git a/package.json b/package.json index a923822..a88dd79 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@athenna/mail", - "version": "4.14.0", + "version": "4.15.0", "description": "The Athenna email handler. Built on top of nodemailer.", "license": "MIT", "author": "Victor Tesoura Júnior ", @@ -62,14 +62,14 @@ "smtp-server": "^3.13.2" }, "devDependencies": { - "@athenna/artisan": "^4.37.0", - "@athenna/common": "^4.34.0", - "@athenna/config": "^4.16.0", - "@athenna/ioc": "^4.16.0", - "@athenna/logger": "^4.17.0", + "@athenna/artisan": "^4.40.0", + "@athenna/common": "^4.35.0", + "@athenna/config": "^4.19.0", + "@athenna/ioc": "^4.18.0", + "@athenna/logger": "^4.18.0", "@athenna/test": "^4.22.0", "@athenna/tsconfig": "^4.12.0", - "@athenna/view": "^4.18.0", + "@athenna/view": "^4.20.0", "@types/nodemailer": "^6.4.7", "@types/smtp-server": "^3.5.7", "@typescript-eslint/eslint-plugin": "^6.7.4", diff --git a/src/drivers/FakeDriver.ts b/src/drivers/FakeDriver.ts new file mode 100644 index 0000000..45699fb --- /dev/null +++ b/src/drivers/FakeDriver.ts @@ -0,0 +1,113 @@ +/** + * @athenna/mail + * + * (c) Victor Tesoura Júnior + * + * For the full copyright and license information, please view the LICENSE + * file that was distributed with this source code. + */ + +export class FakeDriver { + /** + * Send a new mail message. + */ + public async send(): Promise {} + + /** + * Define mail sender. + */ + public from() { + return this + } + + /** + * Define mail receiver. + */ + public to() { + return this + } + + /** + * Define mail subject. + */ + public subject() { + return this + } + + /** + * Define mail cc. + */ + public cc() { + return this + } + + /** + * Define mail bcc. + */ + public bcc() { + return this + } + + /** + * Define mail reply to. + */ + public replyTo() { + return this + } + + /** + * Define mail in reply to. + */ + public inReplyTo() { + return this + } + + /** + * Define mail references. + */ + public references() { + return this + } + + /** + * Define mail envelope. + */ + public envelope() { + return this + } + + /** + * Define attachments to the mail. + */ + public attachment() { + return this + } + + /** + * Define mail plain text. + */ + public text() { + return this + } + + /** + * Define mail html. + */ + public html() { + return this + } + + /** + * Define mail markdown. + */ + public markdown() { + return this + } + + /** + * Define mail view. + */ + public view() { + return this + } +} diff --git a/src/factories/DriverFactory.ts b/src/factories/DriverFactory.ts index 880e48f..282f786 100644 --- a/src/factories/DriverFactory.ts +++ b/src/factories/DriverFactory.ts @@ -9,6 +9,7 @@ import { Config } from '@athenna/config' import { SmtpDriver } from '#src/drivers/SmtpDriver' +import { FakeDriver } from '#src/drivers/FakeDriver' import { NotFoundDriverException } from '#src/exceptions/NotFoundDriverException' import { NotImplementedConfigException } from '#src/exceptions/NotImplementedConfigException' @@ -16,9 +17,9 @@ export class DriverFactory { /** * Driver of driver factory. */ - public static drivers: Map = new Map().set('smtp', { - Driver: SmtpDriver - }) + public static drivers: Map = new Map() + .set('fake', { Driver: FakeDriver }) + .set('smtp', { Driver: SmtpDriver }) /** * Return an array of all available drivers. diff --git a/src/mail/MailImpl.ts b/src/mail/MailImpl.ts index a9af03f..ed5fdde 100644 --- a/src/mail/MailImpl.ts +++ b/src/mail/MailImpl.ts @@ -18,7 +18,7 @@ export class MailImpl { public mailerName: string = Config.get('mail.default') /** - * The driver responsible for mailering the mails. + * The driver responsible for transporting the mails. */ private driver: any = null diff --git a/tests/fixtures/config/view.ts b/tests/fixtures/config/view.ts index 8e09472..1c82b46 100644 --- a/tests/fixtures/config/view.ts +++ b/tests/fixtures/config/view.ts @@ -1,8 +1,5 @@ +import { Path } from '@athenna/common' + export default { - disks: { - mail: Path.fixtures('views/mail') - }, - edge: { - cache: false - } + disk: Path.fixtures('views') } diff --git a/tests/helpers/BaseTest.ts b/tests/helpers/BaseTest.ts index 2a00c9f..a0a25fe 100644 --- a/tests/helpers/BaseTest.ts +++ b/tests/helpers/BaseTest.ts @@ -9,8 +9,8 @@ import { Rc } from '@athenna/config' import { ViewProvider } from '@athenna/view' -import { File, Folder } from '@athenna/common' import { LoggerProvider } from '@athenna/logger' +import { Path, File, Folder } from '@athenna/common' import { SmtpServer } from '#src/facades/SmtpServer' import { MailProvider, SmtpServerProvider } from '#src' import { BeforeEach, AfterEach, Mock } from '@athenna/test' diff --git a/tests/unit/drivers/SmtpDriverTest.ts b/tests/unit/drivers/SmtpDriverTest.ts index d8a7c89..1b9eac5 100644 --- a/tests/unit/drivers/SmtpDriverTest.ts +++ b/tests/unit/drivers/SmtpDriverTest.ts @@ -9,6 +9,7 @@ import { Mail } from '#src' import { Test } from '@athenna/test' +import { Path } from '@athenna/common' import { BaseTest } from '#tests/helpers/BaseTest' import type { Context } from '@athenna/test/types' @@ -64,7 +65,7 @@ export default class SmtpDriverTest extends BaseTest { const result = await Mail.from('no-reply@athenna.io') .to('lenon@athenna.io') .subject('Hello from Athenna!') - .view('mail::plain', { name: 'Athenna' }) + .view('mail/plain', { name: 'Athenna' }) .send() assert.deepEqual(result.response, '250 OK: message queued') @@ -76,7 +77,7 @@ export default class SmtpDriverTest extends BaseTest { const result = await Mail.from('no-reply@athenna.io') .to('lenon@athenna.io') .subject('Hello from Athenna!') - .view('mail::html', { name: 'Athenna' }) + .view('mail/html', { name: 'Athenna' }) .send() assert.deepEqual(result.response, '250 OK: message queued') @@ -88,7 +89,7 @@ export default class SmtpDriverTest extends BaseTest { const result = await Mail.from('no-reply@athenna.io') .to('lenon@athenna.io') .subject('Hello from Athenna!') - .view('mail::markdown', { name: 'Athenna' }) + .view('mail/markdown', { name: 'Athenna' }) .send() assert.deepEqual(result.response, '250 OK: message queued') diff --git a/tests/unit/factories/DriverFactoryTest.ts b/tests/unit/factories/DriverFactoryTest.ts index 5544252..5b5cd24 100644 --- a/tests/unit/factories/DriverFactoryTest.ts +++ b/tests/unit/factories/DriverFactoryTest.ts @@ -19,7 +19,7 @@ export default class DriverFactoryTest extends BaseTest { public shouldBeAbleToGetTheAvailableDriversOfDriverFactory({ assert }: Context) { const drivers = DriverFactory.availableDrivers() - assert.deepEqual(drivers, ['smtp']) + assert.deepEqual(drivers, ['fake', 'smtp']) } @Test()