From 13a85eced60534361b7ee3f16a9221485d376a83 Mon Sep 17 00:00:00 2001 From: hkamran2 Date: Wed, 26 Feb 2025 23:00:28 +0000 Subject: [PATCH] feat: add indopak_nastaleeq text The SDK currently does not support the text_indopak_nastaleeq field. This field, instead of the text_indopak, is useful when the using the nastaleeq font as it correctly provides each verse's end characters. --- mocks/handlers.ts | 2 ++ src/types/api/Verse.ts | 1 + src/types/index.ts | 1 + test/verses.test.ts | 28 ++++++++++++++++++++++++++++ 4 files changed, 32 insertions(+) diff --git a/mocks/handlers.ts b/mocks/handlers.ts index f4c6f00..3da4a41 100644 --- a/mocks/handlers.ts +++ b/mocks/handlers.ts @@ -313,6 +313,8 @@ export const handlers = [ rub_number: 1, sajdah_type: null, sajdah_number: null, + text_indopak_nastaleeq: + 'بِسْمِ اللّٰهِ الرَّحْمٰنِ الرَّحِیْمِ ۟', words: [ { id: 1, diff --git a/src/types/api/Verse.ts b/src/types/api/Verse.ts index 32d253e..8b67e1a 100644 --- a/src/types/api/Verse.ts +++ b/src/types/api/Verse.ts @@ -21,6 +21,7 @@ export interface Verse { textImlaei?: string; textImlaeiSimple?: string; textIndopak?: string; + textIndopakNastaleeq?: string; sajdahNumber: null; // sajdahType: null; imageUrl?: string; diff --git a/src/types/index.ts b/src/types/index.ts index d54829d..c8ad982 100644 --- a/src/types/index.ts +++ b/src/types/index.ts @@ -90,6 +90,7 @@ export type VerseField = | 'textImlaei' | 'textImlaeiSimple' | 'textIndopak' + | 'textIndopakNastaleeq' | 'textUthmaniTajweed' | 'imageUrl' | 'imageWidth' diff --git a/test/verses.test.ts b/test/verses.test.ts index 69603d6..0390bbe 100644 --- a/test/verses.test.ts +++ b/test/verses.test.ts @@ -1,4 +1,6 @@ +import { expect, it, vi } from 'vitest'; import { createApiTest } from './utils'; +import * as internalFetcher from '../src/sdk/v4/_fetcher'; createApiTest('verses', { findByChapter: { @@ -7,6 +9,32 @@ createApiTest('verses', { }, params: ['1'], rejectParams: ['0' as any], + customCases: (method) => { + it('should return indopak_nastaleeq text', async () => { + const fetcherSpy = vi.spyOn(internalFetcher, 'fetcher'); + + const response = await method(1, { + fields: { textIndopakNastaleeq: true }, + }); + + const expectedIndopakNastaleeqText = + 'بِسْمِ اللّٰهِ الرَّحْمٰنِ الرَّحِیْمِ ۟'; + + expect(fetcherSpy).toHaveBeenCalledWith( + '/verses/by_chapter/1', + { + language: 'ar', + perPage: 50, + words: false, + fields: 'text_indopak_nastaleeq', + }, + undefined + ); + expect(response[0].textIndopakNastaleeq).toBe( + expectedIndopakNastaleeqText + ); + }); + }, }, findByJuz: { expect: {