diff --git a/README.md b/README.md
index 4722843db5c2..4f8b530919f4 100644
--- a/README.md
+++ b/README.md
@@ -7,6 +7,7 @@
+
---
diff --git a/tests/character_detail.test.js b/tests/character_detail.test.js
index 6f3597e39412..27d7d898db0c 100644
--- a/tests/character_detail.test.js
+++ b/tests/character_detail.test.js
@@ -93,7 +93,7 @@ describe('character_detail.js', () => {
test('skips badges when gender and species absent', () => {
renderCharacter({ name: 'Robot' });
- expect(document.getElementById('character-badges').children.length).toBe(0);
+ expect(document.getElementById('character-badges').children).toHaveLength(0);
});
test('shows games section when games present', () => {
diff --git a/tests/game_detail.test.js b/tests/game_detail.test.js
index a68253d5155b..3fd1169d6434 100644
--- a/tests/game_detail.test.js
+++ b/tests/game_detail.test.js
@@ -107,12 +107,12 @@ describe('game_detail.js', () => {
game_modes: [{ name: 'Single player' }],
player_perspectives: [{ name: 'First person' }],
});
- expect(document.getElementById('game-badges').children.length).toBe(4);
+ expect(document.getElementById('game-badges').children).toHaveLength(4);
});
test('handles missing badge arrays gracefully', () => {
renderGameBadges({});
- expect(document.getElementById('game-badges').children.length).toBe(0);
+ expect(document.getElementById('game-badges').children).toHaveLength(0);
});
});
@@ -136,7 +136,7 @@ describe('game_detail.js', () => {
test('skips when no ratings', () => {
const dl = document.getElementById('game-meta');
renderGameRatings({}, dl);
- expect(dl.children.length).toBe(0);
+ expect(dl.children).toHaveLength(0);
});
test('skips age ratings row when all entries are incomplete', () => {
@@ -144,7 +144,7 @@ describe('game_detail.js', () => {
renderGameRatings({
age_ratings: [{ rating_category: null, organization: null }],
}, dl);
- expect(dl.children.length).toBe(0);
+ expect(dl.children).toHaveLength(0);
});
});
@@ -174,7 +174,7 @@ describe('game_detail.js', () => {
test('skips when no platforms', () => {
const dl = document.getElementById('game-meta');
renderGamePlatforms({}, dl);
- expect(dl.children.length).toBe(0);
+ expect(dl.children).toHaveLength(0);
});
});
@@ -195,13 +195,13 @@ describe('game_detail.js', () => {
test('skips when no release dates', () => {
const dl = document.getElementById('game-meta');
renderReleaseDates({}, dl);
- expect(dl.children.length).toBe(0);
+ expect(dl.children).toHaveLength(0);
});
test('skips row when all entries lack date and y', () => {
const dl = document.getElementById('game-meta');
renderReleaseDates({ release_dates: [{ date: null, y: null }] }, dl);
- expect(dl.children.length).toBe(0);
+ expect(dl.children).toHaveLength(0);
});
test('renders release date with unknown release_region (empty flag)', () => {
@@ -239,13 +239,13 @@ describe('game_detail.js', () => {
test('skips when no involved companies', () => {
const dl = document.getElementById('game-meta');
renderCompanies({}, dl);
- expect(dl.children.length).toBe(0);
+ expect(dl.children).toHaveLength(0);
});
test('skips rows when devs or pubs list is empty', () => {
const dl = document.getElementById('game-meta');
renderCompanies({ involved_companies: [] }, dl);
- expect(dl.children.length).toBe(0);
+ expect(dl.children).toHaveLength(0);
});
});
@@ -302,7 +302,7 @@ describe('game_detail.js', () => {
test('skips franchise when neither franchises array nor franchise object', () => {
const dl = document.getElementById('game-meta');
renderCollectionsAndFranchises({}, dl);
- expect(dl.children.length).toBe(0);
+ expect(dl.children).toHaveLength(0);
});
});
@@ -318,13 +318,13 @@ describe('game_detail.js', () => {
test('skips when no multiplayer modes', () => {
const dl = document.getElementById('game-meta');
renderMultiplayer({}, dl);
- expect(dl.children.length).toBe(0);
+ expect(dl.children).toHaveLength(0);
});
test('skips when parts are empty', () => {
const dl = document.getElementById('game-meta');
renderMultiplayer({ multiplayer_modes: [{}] }, dl);
- expect(dl.children.length).toBe(0);
+ expect(dl.children).toHaveLength(0);
});
});
@@ -339,7 +339,7 @@ describe('game_detail.js', () => {
const section = document.getElementById('game-screenshots-section');
expect(section.classList.contains('d-none')).toBe(false);
const buttons = document.querySelectorAll('#game-screenshots button');
- expect(buttons.length).toBe(2);
+ expect(buttons).toHaveLength(2);
buttons[0].click();
expect(globalThis.openImageModal).toHaveBeenCalled();
});
@@ -365,7 +365,7 @@ describe('game_detail.js', () => {
test('skips video entries without video_id', () => {
renderVideos({ videos: [{ name: 'No ID' }] });
- expect(document.querySelectorAll('#game-videos iframe').length).toBe(0);
+ expect(document.querySelectorAll('#game-videos iframe')).toHaveLength(0);
});
test('skips when no videos', () => {
@@ -406,7 +406,7 @@ describe('game_detail.js', () => {
test('skips entries with no url and no uid', () => {
renderExternalLinks({ external_games: [{}] });
- expect(document.getElementById('game-external').children.length).toBe(0);
+ expect(document.getElementById('game-external').children).toHaveLength(0);
});
test('skips when no external_games', () => {
@@ -509,7 +509,7 @@ describe('game_detail.js', () => {
introHeader.appendChild(existingDesc);
// Should not add a second img-desc
setupGameBanner({ artworks: [{ url: '//images.igdb.com/t_thumb/art.jpg' }] });
- expect(document.querySelectorAll('.intro-header .img-desc').length).toBe(1);
+ expect(document.querySelectorAll('.intro-header .img-desc')).toHaveLength(1);
});
test('does not throw when artworks present but no .page-heading anywhere', () => {
diff --git a/tests/item_detail.test.js b/tests/item_detail.test.js
index 392d8f14930c..6fae7bc099ac 100644
--- a/tests/item_detail.test.js
+++ b/tests/item_detail.test.js
@@ -110,7 +110,7 @@ describe('item_detail.js', () => {
test('appends dt and dd with string value', () => {
const dl = document.createElement('dl');
addDlRow(dl, 'Developer', 'Test Studio');
- expect(dl.children.length).toBe(2);
+ expect(dl.children).toHaveLength(2);
expect(dl.children[0].tagName).toBe('DT');
expect(dl.children[1].tagName).toBe('DD');
expect(dl.children[0].textContent).toBe('Developer');
diff --git a/tests/item_loader.test.js b/tests/item_loader.test.js
index c6c65b8519a5..e38569e1e78b 100644
--- a/tests/item_loader.test.js
+++ b/tests/item_loader.test.js
@@ -68,7 +68,7 @@ describe('item_loader.js', () => {
test('splits at word boundary when longer than 200 chars', () => {
const long = 'word '.repeat(50); // 250 chars
const result = splitString(long);
- expect(result.length).toBe(2);
+ expect(result).toHaveLength(2);
expect(result[0].length).toBeLessThanOrEqual(200);
expect(result[1]).toBe(long);
});
@@ -137,7 +137,7 @@ describe('item_loader.js', () => {
}, allPlatforms);
// Should show first 3 platforms + "+1 more"
const badges = col.querySelectorAll('.badge');
- expect(badges.length).toBe(4); // 3 platforms + "+1 more"
+ expect(badges).toHaveLength(4); // 3 platforms + "+1 more"
expect(col.textContent).toContain('+1 more');
});
@@ -167,7 +167,7 @@ describe('item_loader.js', () => {
row,
null,
);
- expect(row.children.length).toBe(2);
+ expect(row.children).toHaveLength(2);
});
});
@@ -175,14 +175,14 @@ describe('item_loader.js', () => {
test('appends note when total exceeds shown', () => {
const container = document.createElement('div');
addMoreResultsNote(container, 100, 60);
- expect(container.children.length).toBe(1);
+ expect(container.children).toHaveLength(1);
expect(container.textContent).toContain('60');
});
test('does nothing when total equals shown', () => {
const container = document.createElement('div');
addMoreResultsNote(container, 60, 60);
- expect(container.children.length).toBe(0);
+ expect(container.children).toHaveLength(0);
});
});
@@ -294,7 +294,7 @@ describe('item_loader.js', () => {
const para = document.createElement('p');
const footer = document.createElement('div');
addVersionMetadataToFooter({}, para, footer, {}, regionMap, iconMap);
- expect(footer.children.length).toBe(0);
+ expect(footer.children).toHaveLength(0);
});
test('skips metadata key when it has null icon and is not a special key', () => {
@@ -304,7 +304,7 @@ describe('item_loader.js', () => {
const customIconMap = { media: null, platform_version_release_dates: null, summary: null };
addVersionMetadataToFooter({ media: 'Blu-ray' }, para, footer, {}, regionMap, customIconMap);
// Should not add to footer since icon is null and not a special key
- expect(footer.children.length).toBe(0);
+ expect(footer.children).toHaveLength(0);
});
});
diff --git a/tests/platform_detail.test.js b/tests/platform_detail.test.js
index 9420e4d49f31..644cc194fa40 100644
--- a/tests/platform_detail.test.js
+++ b/tests/platform_detail.test.js
@@ -92,22 +92,22 @@ describe('platform_detail.js', () => {
test('renders category and generation badges', () => {
renderPlatformBadges({ category: 1, generation: 9 });
const badges = document.getElementById('platform-badges');
- expect(badges.children.length).toBe(2);
+ expect(badges.children).toHaveLength(2);
});
test('renders only category when no generation', () => {
renderPlatformBadges({ category: 2 });
- expect(document.getElementById('platform-badges').children.length).toBe(1);
+ expect(document.getElementById('platform-badges').children).toHaveLength(1);
});
test('renders only generation when no category', () => {
renderPlatformBadges({ generation: 8 });
- expect(document.getElementById('platform-badges').children.length).toBe(1);
+ expect(document.getElementById('platform-badges').children).toHaveLength(1);
});
test('renders nothing when no category or generation', () => {
renderPlatformBadges({});
- expect(document.getElementById('platform-badges').children.length).toBe(0);
+ expect(document.getElementById('platform-badges').children).toHaveLength(0);
});
test('renders fallback text for unknown category number', () => {
@@ -144,7 +144,7 @@ describe('platform_detail.js', () => {
test('renders nothing when no data', () => {
renderPlatformMetadata({});
- expect(document.getElementById('platform-meta').children.length).toBe(0);
+ expect(document.getElementById('platform-meta').children).toHaveLength(0);
});
});
@@ -248,7 +248,7 @@ describe('platform_detail.js', () => {
test('renders nothing extra when version is empty', () => {
const body = document.createElement('div');
populateVersionBody(body, {});
- expect(body.children.length).toBe(0);
+ expect(body.children).toHaveLength(0);
});
});