import test from 'ava';
import convert from '../lib/index';

test('handles lowercase letters correctly', t => {
	const lat = convert('abcčćddžđefghijklljmnnjoprsštuvzž');
	const cyr = 'абцчћдџђефгхијклљмнњопрсштувзж';
	t.is(lat, cyr);
});

test('handles uppercase letters correctly', t => {
	const lat = convert('ABCČĆDDžĐEFGHIJKLLjMNNjOPRSŠTUVZŽ');
	const cyr = 'АБЦЧЋДЏЂЕФГХИЈКЛЉМНЊОПРСШТУВЗЖ';
	t.is(lat, cyr);
});

// https://sr.wikipedia.org/sr-el/%D0%9F%D0%B0%D0%BD%D0%B3%D1%80%D0%B0%D0%BC
test('handles a pangram sentence correctly', t => {
	const lat = convert('Hadži Đera je zaćutao i bacio čežnjiv pogled na šolju s kafom.');
	const cyr = 'Хаџи Ђера је заћутао и бацио чежњив поглед на шољу с кафом.';
	t.is(lat, cyr);
});

test('does nothing to unconvertable characters', t => {
	const preConvert = '+38160333222%~`qwyx`';
	const converted = convert(preConvert);
	t.is(converted, preConvert);
});

test('handles uppercased digraphs', t => {
	const lat = convert('LJNJDŽ');
	const cyr = 'ЉЊЏ';
	t.is(lat, cyr);
});

test('throws an error if argument isn\'t a string', t => {
	const error = t.throws(() => {
		convert([]);
	}, TypeError);

	t.is(error.message, '[latin-to-serbian-cyrillic] - input must be a string');
});
