-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathtest_flags.js
More file actions
42 lines (36 loc) 路 1.54 KB
/
Copy pathtest_flags.js
File metadata and controls
42 lines (36 loc) 路 1.54 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
const test = require('node:test');
const assert = require('node:assert');
// Mock a minimal browser environment just in case any global is expected
global.window = {};
global.document = {
querySelector: () => null,
querySelectorAll: () => []
};
const App = require('./app.js');
test('Country Flag Emoji and Isolation Tests', async (t) => {
await t.test('should return correct flag emojis for mapped country names', () => {
const getFlag = App.prototype.getFlagEmoji;
// Test exact mapping
assert.strictEqual(getFlag('Uzbekistan'), '馃嚭馃嚳');
assert.strictEqual(getFlag('UZ'), '馃嚭馃嚳');
assert.strictEqual(getFlag('United States'), '馃嚭馃嚫');
assert.strictEqual(getFlag('USA'), '馃嚭馃嚫');
assert.strictEqual(getFlag('US'), '馃嚭馃嚫');
assert.strictEqual(getFlag('United Kingdom'), '馃嚞馃嚙');
assert.strictEqual(getFlag('UK'), '馃嚞馃嚙');
assert.strictEqual(getFlag('Turkey'), '馃嚬馃嚪');
assert.strictEqual(getFlag('Russia'), '馃嚪馃嚭');
});
await t.test('should handle two letter codes directly', () => {
const getFlag = App.prototype.getFlagEmoji;
assert.strictEqual(getFlag('FR'), '馃嚝馃嚪');
assert.strictEqual(getFlag('it'), '馃嚠馃嚬');
assert.strictEqual(getFlag('BR'), '馃嚙馃嚪');
});
await t.test('should return globe emoji fallback for unknown countries', () => {
const getFlag = App.prototype.getFlagEmoji;
assert.strictEqual(getFlag('UnknownLand'), '馃寧');
assert.strictEqual(getFlag(''), '馃寧');
assert.strictEqual(getFlag(null), '馃寧');
});
});