Skip to content

Commit

Permalink
Letter 2.0.0
Browse files Browse the repository at this point in the history
  • Loading branch information
Awilum committed Jan 9, 2022
1 parent 04b892c commit 55b8634
Show file tree
Hide file tree
Showing 5 changed files with 36 additions and 18 deletions.
7 changes: 7 additions & 0 deletions CHANGELOG.md
Original file line number Diff line number Diff line change
@@ -1,3 +1,10 @@
<a name="2.0.0"></a>
# [2.0.0](https://github.com/faker-javascript/letter) (2022-01-09)

### BREAKING CHANGES

* New function `letter` istead of `fakeLetter`

<a name="1.1.0"></a>
# [1.1.0](https://github.com/faker-javascript/letter) (2022-01-08)
* Add locales support: ru_RU, en_US (default)
Expand Down
8 changes: 4 additions & 4 deletions README.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,15 +15,15 @@ $ npm install --save @fakerjs/letter
## Usage

```js
import fakeLetter from '@fakerjs/letter';
import letter from '@fakerjs/letter';

fakeLetter();
letter();
//=> z

fakeLetter({'casing': 'upper'});
letter({'casing': 'upper'});
//=> Z

fakeLetter({'casing': 'upper', 'locale': 'ru_RU'});
letter({'casing': 'upper', 'locale': 'ru_RU'});
//=> Я
```

Expand Down
4 changes: 2 additions & 2 deletions index.js
Original file line number Diff line number Diff line change
@@ -1,10 +1,10 @@
export default function fakeLetter(options) {
export default function letter(options) {
options = options || {};
let keyspace = {
"en_US": "abcdefghijklmnopqrstuvwxyz",
"ru_RU": "абвгдеёжзийклмнопрстуфхцчшщъыьэюя"
};
let locale = ((options.locale === undefined) ? 'en_US' : options.locale);
let locale = options.locale || 'en_US';
let letter = keyspace[locale].charAt(Math.floor(Math.random() * keyspace[locale].length));
return (options.casing === 'upper' ? letter.toUpperCase() : letter);
};
3 changes: 2 additions & 1 deletion package.json
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
{
"name": "@fakerjs/letter",
"version": "1.1.0",
"version": "2.0.0",
"description": "Letter package provides functionality to generate a fake letter value.",
"license": "MIT",
"repository": "faker-javascript/letter",
Expand All @@ -25,6 +25,7 @@
],
"keywords": [
"fakerjs",
"faker",
"fake",
"random",
"strings",
Expand Down
32 changes: 21 additions & 11 deletions test.js
Original file line number Diff line number Diff line change
@@ -1,18 +1,28 @@
import fakeLetter from './index.js';
import letter from './index.js';
import test from 'ava';

test('fakeLetter return type to be string', t => {
t.is(typeof fakeLetter(), 'string');
test('letter return type to be string', t => {
t.is(typeof letter(), 'string');
});

test('fakeLetter length casing eq 1', t => {
t.is(fakeLetter().length, 1);
t.is(fakeLetter({ casing: 'upper' }).length, 1);
t.is(fakeLetter({ casing: 'lower' }).length, 1);
test('letter length casing eq 1', t => {
t.is(letter().length, 1);
t.is(letter({ casing: 'upper' }).length, 1);
t.is(letter({ casing: 'lower' }).length, 1);
});

test('fakeLetter with casing and locale ru_RU length eq 1', t => {
t.is(fakeLetter().length, 1);
t.is(fakeLetter({ casing: 'upper', locale: 'ru_RU' }).length, 1);
t.is(fakeLetter({ casing: 'lower', locale: 'ru_RU' }).length, 1);
test('letter with locale ru_RU includes', t => {
t.true('абвгдеёжзийклмнопрстуфхцчшщъыьэюя'.includes(letter({ locale: 'ru_RU' })));
t.false('абвгдеёжзийклмнопрстуфхцчшщъыьэюя'.includes('z'));
});

test('letter with locale en_US includes', t => {
t.true('abcdefghijklmnopqrstuvwxyz'.includes(letter({ locale: 'en_US' })));
t.false('abcdefghijklmnopqrstuvwxyz'.includes('я'));
});

test('letter with casing and locale ru_RU length eq 1', t => {
t.is(letter().length, 1);
t.is(letter({ casing: 'upper', locale: 'ru_RU' }).length, 1);
t.is(letter({ casing: 'lower', locale: 'ru_RU' }).length, 1);
});

0 comments on commit 55b8634

Please sign in to comment.