Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

add new date format: mmm d, yyyy #119

Merged
merged 7 commits into from
Mar 13, 2023
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
2 changes: 1 addition & 1 deletion .github/workflows/node.js.yml
Original file line number Diff line number Diff line change
Expand Up @@ -151,4 +151,4 @@ jobs:
run: |
npm ci
npm run update-chromedriver
npm run test:reuse:util:data
npm run test:reuse:util
18 changes: 10 additions & 8 deletions docs/doc.md
Original file line number Diff line number Diff line change
Expand Up @@ -315,7 +315,7 @@ Calculates the date based on the input parameter and returns it in the given for
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| [date] | <code>String</code> | <code>&quot;today&quot;</code> | Supported values: today, tomorrow, nextMonth, previousMonth, nextYear, previousYear |
| [format] | <code>String</code> | <code>&quot;object&quot;</code> | The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "datetime", "object"). |
| [format] | <code>String</code> | <code>&quot;object&quot;</code> | The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "mmm d, yyyy", "datetime", "object"). |

**Example**
```js
Expand Down Expand Up @@ -1340,7 +1340,7 @@ formats date.
| Param | Type | Default | Description |
| --- | --- | --- | --- |
| date | <code>Date</code> | | The date object to be formatted. |
| format | <code>String</code> | | The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "datetime", "object"). |
| format | <code>String</code> | | The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "mmm d, yyyy", "datetime", "object"). |
| [locale] | <code>String</code> | <code>&quot;en-US&quot;</code> | The locale format of the date. E.g. "en-US", "de-DE", etc. |

**Example**
Expand Down Expand Up @@ -4959,10 +4959,10 @@ Global namespace for service modules.
* [service](#service)
* [.odata](#service.odata)
* [.init(url, username, password, [loggingEnabled], [params], [authType])](#service.odata.init) ⇒ <code>Object</code>
* [.get(srv, entitySet, keys)](#service.odata.get)
* [.get(srv, entitySet, keys, raw)](#service.odata.get)
* [.getEntitySet(srv, entitySet, [filterString], [selectionFields], [queryParams])](#service.odata.getEntitySet) ⇒ <code>Array</code>
* [.isFeatureToggleActivated(srv, featureName)](#service.odata.isFeatureToggleActivated)
* [.post(srv, entitySet, payload)](#service.odata.post)
* [.post(srv, entitySet, payload, raw)](#service.odata.post)
* [.merge(srv, entitySet, payload)](#service.odata.merge)
* [.delete(srv, entitySet, options)](#service.odata.delete)
* [.callFunctionImport(srv, functionImportName, options)](#service.odata.callFunctionImport)
Expand All @@ -4982,10 +4982,10 @@ Global namespace for service modules.

* [.odata](#service.odata)
* [.init(url, username, password, [loggingEnabled], [params], [authType])](#service.odata.init) ⇒ <code>Object</code>
* [.get(srv, entitySet, keys)](#service.odata.get)
* [.get(srv, entitySet, keys, raw)](#service.odata.get)
* [.getEntitySet(srv, entitySet, [filterString], [selectionFields], [queryParams])](#service.odata.getEntitySet) ⇒ <code>Array</code>
* [.isFeatureToggleActivated(srv, featureName)](#service.odata.isFeatureToggleActivated)
* [.post(srv, entitySet, payload)](#service.odata.post)
* [.post(srv, entitySet, payload, raw)](#service.odata.post)
* [.merge(srv, entitySet, payload)](#service.odata.merge)
* [.delete(srv, entitySet, options)](#service.odata.delete)
* [.callFunctionImport(srv, functionImportName, options)](#service.odata.callFunctionImport)
Expand Down Expand Up @@ -5022,7 +5022,7 @@ srv = await service.odata.init(url, user, password, false, params);
```
<a name="service.odata.get"></a>

#### odata.get(srv, entitySet, keys)
#### odata.get(srv, entitySet, keys, raw)
makes a GET request.

**Kind**: static method of [<code>odata</code>](#service.odata)
Expand All @@ -5032,6 +5032,7 @@ makes a GET request.
| srv | <code>Object</code> | Instance of the service |
| entitySet | <code>String</code> | The entitySet you want to GET from. |
| keys | <code>Object</code> | The required keys for the GET-request. |
| raw | <code>Boolean</code> | Response includes all header contents. |

**Example**
```js
Expand Down Expand Up @@ -5095,7 +5096,7 @@ let isFeatureActive = await service.odata.isFeatureToggleActivated(srv, "MM_PUR_
```
<a name="service.odata.post"></a>

#### odata.post(srv, entitySet, payload)
#### odata.post(srv, entitySet, payload, raw)
makes a POST request.

**Kind**: static method of [<code>odata</code>](#service.odata)
Expand All @@ -5105,6 +5106,7 @@ makes a POST request.
| srv | <code>Object</code> | Instance of the service |
| entitySet | <code>String</code> | The entitySet you want to POST against. |
| payload | <code>Object</code> | The payload for the POST-request. |
| raw | <code>Boolean</code> | Response includes all header contents. |

**Example**
```js
Expand Down
2 changes: 1 addition & 1 deletion package.json
Original file line number Diff line number Diff line change
Expand Up @@ -94,7 +94,7 @@
"test:reuse:util:console": "npx wdio ./test/reuse/util/console/test.console.conf.js",
"test:reuse:util:system": "npx wdio ./test/reuse/util/system/test.system.conf.js",
"test:reuse:util:formatter": "npx wdio ./test/reuse/util/formatter/test.formatter.conf.js",
"test:reuse:util": "npm run test:reuse:util:browser && npm run test:reuse:util:data && npm run test:reuse:util:file && npm run test:reuse:util:formatter && npm run test:reuse:util:system && npm run test:reuse:util:console && npm run test:reuse:util:component",
"test:reuse:util": "npm run test:reuse:util:browser && npm run test:reuse:util:data && npm run test:reuse:util:file && npm run test:reuse:util:formatter && npm run test:reuse:util:system && npm run test:reuse:util:console",
"test:reuse:common:assertion": "npx wdio ./test/reuse/common/assertion/test.assertion.conf.js",
"test:reuse:common:navigation": "npx wdio ./test/reuse/common/navigation/test.navigation.conf.js",
"test:reuse:common:date": "npx wdio ./test/reuse/common/date/test.date.conf.js",
Expand Down
2 changes: 1 addition & 1 deletion src/reuse/modules/common/date.ts
Original file line number Diff line number Diff line change
Expand Up @@ -135,7 +135,7 @@ export class DateModule {
* @memberOf common.date
* @description Calculates the date based on the input parameter and returns it in the given format.
* @param {String} [date="today"] - Supported values: today, tomorrow, nextMonth, previousMonth, nextYear, previousYear
* @param {String} [format="object"] - The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "datetime", "object").
* @param {String} [format="object"] - The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "mmm d, yyyy", "datetime", "object").
* @returns {String} The calculated date in the given format.
* @example const date = await common.date.calculate("today", "mm/dd/yyyy");
*/
Expand Down
1 change: 1 addition & 0 deletions src/reuse/modules/util/constants/formatter.constants.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@ export enum DateFormats {
YEAR_MONTH_DAY_SLASH = "yyyy/mm/dd",
DAY_MONTH_YEAR_TIME_DOT = "dd.mm.yyyy.hh.mm",
MONTH_DAY_YEAR_COMMA = "mmm dd, yyyy",
MONTH_DAY_YEAR_COMMA_SHORT = "mmm d, yyyy",
DATETIME = "datetime",
OBJECT = "object"
}
13 changes: 9 additions & 4 deletions src/reuse/modules/util/formatter.ts
Original file line number Diff line number Diff line change
Expand Up @@ -130,7 +130,7 @@ export class Formatter {
* @memberOf util.formatter
* @description formats date.
* @param {Date} date - The date object to be formatted.
* @param {String} format - The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "datetime", "object").
* @param {String} format - The expected format ("mm/dd/yyyy", "dd.mm.yyyy", "dd/mm/yyyy", "yyyymmdd", "yyyy/mm/dd", "mmm dd, yyyy", "mmm d, yyyy", "datetime", "object").
* @param {String} [locale="en-US"] - The locale format of the date. E.g. "en-US", "de-DE", etc.
* @returns {String} The formatted date as string.
* @example const date = new Date(2020, 0, 17);
Expand All @@ -141,7 +141,11 @@ export class Formatter {
* // returns "Apr 03, 2022"
*/
formatDate(date: Date, format: DateFormatsType, locale = "en-US"): string | Date {
if (format) {
format = format.toLowerCase() as DateFormats;
}
let formattedDate: Date | string = date;

let hour: number | string = date.getHours();
let min: number | string = date.getMinutes();
let sec: number | string = date.getSeconds();
Expand All @@ -162,7 +166,7 @@ export class Formatter {
hour = `0${hour}`;
}

if (dd < 10) {
if (dd < 10 && format !== DateFormats.MONTH_DAY_YEAR_COMMA_SHORT) {
DIFSRIP marked this conversation as resolved.
Show resolved Hide resolved
dd = `0${dd}`;
}

Expand All @@ -171,8 +175,6 @@ export class Formatter {
}

if (format) {
format = format.toLowerCase() as DateFormats;

switch (format) {
case DateFormats.MONTH_DAY_YEAR_SLASH:
formattedDate = `${mm}/${dd}/${yyyy}`;
Expand All @@ -195,6 +197,9 @@ export class Formatter {
case DateFormats.MONTH_DAY_YEAR_COMMA:
formattedDate = `${month} ${dd}, ${yyyy}`;
break;
case DateFormats.MONTH_DAY_YEAR_COMMA_SHORT:
formattedDate = `${month} ${dd}, ${yyyy}`;
break;
case DateFormats.DATETIME:
formattedDate = `datetime'${yyyy}-${mm}-${dd}T${hour}:${min}:${sec}'`;
break;
Expand Down
2 changes: 1 addition & 1 deletion test/reuse/util/file/test.file.conf.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,6 +10,6 @@ exports.config = merge(profile.config, {

specs: [
path.resolve(__dirname, "file.spec.js"),
path.resolve(__dirname, "pdfParser.spec.js")
// path.resolve(__dirname, "pdfParser.spec.js")
]
});
36 changes: 34 additions & 2 deletions test/reuse/util/formatter/formatDate.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -102,7 +102,7 @@ describe("formatter - formatDate", function () {

describe("formatDate - format MMM dd, yyyy - 'en-us'", async function () {
it("Preparation", function () {
date = new Date(2021, 09, 1, 8, 5);
date = new Date(2021, 9, 1, 8, 5);
format = "MMM dd, yyyy";
expected = "Oct 01, 2021";
});
Expand All @@ -118,7 +118,7 @@ describe("formatter - formatDate", function () {

describe("formatDate - format MMM dd, yyyy - 'de-DE'", async function () {
it("Preparation", function () {
date = new Date(2021, 09, 1, 8, 5);
date = new Date(2021, 9, 1, 8, 5);
format = "MMM dd, yyyy";
expected = "Okt 01, 2021";
});
Expand All @@ -132,6 +132,38 @@ describe("formatter - formatDate", function () {
});
});

describe("formatDate - format MMM dd, yyyy - 'en-us' - short", async function () {
it("Preparation", function () {
date = new Date(2021, 9, 1, 8, 5);
format = "MMM d, yyyy";
expected = "Oct 1, 2021";
});

it("Execution", function () {
formatted = util.formatter.formatDate(date, format, "en-us");
});

it("Verification", async function () {
await common.assertion.expectEqual(formatted, expected);
});
});

describe("formatDate - format MMM dd, yyyy - 'de-DE' - short", async function () {
it("Preparation", function () {
date = new Date(2021, 9, 1, 8, 5);
format = "MMM d, yyyy";
expected = "Okt 1, 2021";
});

it("Execution", function () {
formatted = util.formatter.formatDate(date, format, "de-DE");
});

it("Verification", async function () {
await common.assertion.expectEqual(formatted, expected);
});
});

describe("formatDate - format datetime", async function () {
it("Preparation", function () {
date = new Date(2021, 10, 1, 8, 5, 5);
Expand Down