<!doctype html>
<script src="./otpcredential-helper.js"></script>
<script>
'use strict';

// Loading otpcredential-iframe.html in the test will make an OTPCredentials
// call on load, and trigger a postMessage upon completion.
//
// message {
//   string result: "Pass" | "Fail"
//   string code: credentials.code
//   string errorType: error.name
// }

// Intercept successful calls and return mocked value.
(async function() {
    await expect(receive).andReturn(() => {
        return Promise.resolve({
            status: Status.kSuccess,
            otp: "ABC123",
        });
    });
}());

window.onload = async () => {
    try {
        const credentials =
            await navigator.credentials.get({otp: {transport: ["sms"]}});
        window.parent.postMessage({result: "Pass", code: credentials.code}, '*');
    } catch (error) {
        window.parent.postMessage({result: "Fail", errorType: error.name}, '*');
    }
}

</script>
