Почему readAsStringAsync не вызывается? - PullRequest
0 голосов
/ 26 октября 2019

Я пишу тестовый пример для модуля с именем SendData.js. В этом модуле мы использовали expo-file-system и expo-mail-composer для реализации отправки электронной почты на устройстве iOS. Вот функция отправки в SendData.js

static sendDataEmail = () => {

        // Get all the contents in the root directory of this app's file
        const directory = FileSystem.readDirectoryAsync(FileSystem.documentDirectory);
        directory.then(
            // Return the app's file
            function(result) {

                result.forEach(function(element, index){
                    result[index] = FileSystem.documentDirectory + result[index];
                });

                FileSystem.readAsStringAsync(FileSystem.documentDirectory + "NewUserQuestions.json").then(
                    function(result1) {

                        result1 = JSON.parse(result1)['userID']

                        let mailOptions =  {
                            recipients: ['cpc.qantas@sydney.edu.au'],
                            subject: 'JetSet Results UserID:' + result1,
                            attachments: result,
                        }

                        // Open email client
                        MailComposer.composeAsync(mailOptions);
                    }
                )

            },
            // Failed to extract files from the root directory
            function(err){
                console.log(err);
            }

А вот мой тестовый код. Мне интересно, почему FileSystem.readAsStringAsync не вызывается, любая помощь будет большой. Спасибо!

import SendData from "../app/resources/SendData"
import * as MailComposer from 'expo-mail-composer';
import * as FileSystem from 'expo-file-system';

jest.mock("../node_modules/expo-file-system/src/FileSystem");
jest.mock("../node_modules/expo-mail-composer/src/MailComposer");

const localDirectory = "../__fakeFiles__";
FileSystem.documentDirectory = localDirectory;


describe("This is test suits for SendData", ()=> {
  it("sendDataEmail() is tested.", async ()=>{
    await SendData.sendDataEmail();
    expect(FileSystem.readDirectoryAsync).toHaveBeenCalled();
    expect(FileSystem.readAsStringAsync).toHaveBeenCalled();
    expect(MailComposer.composeAsync).toHaveBeenCalled();
  })
});
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...