ਇਨਬਾਕਸ ਦੀ ਹਫੜਾ-ਦਫੜੀ ਤੋਂ ਬਿਨਾਂ ਪਾਸਵਰਡਲੈੱਸ ਲੌਗਇਨ ਦੀ ਜਾਂਚ ਕਰੋ

ਡੈਮੋ ਵਿੱਚ ਪਾਸਵਰਡਲੈੱਸ ਲੌਗਇਨ ਆਸਾਨ ਲੱਗਦਾ ਹੈ। ਇੱਕ ਉਪਭੋਗਤਾ ਈਮੇਲ ਦਰਜ ਕਰਦਾ ਹੈ, ਇੱਕ ਮੈਜਿਕ ਲਿੰਕ ਪ੍ਰਾਪਤ ਕਰਦਾ ਹੈ, ਅਤੇ ਲੌਗਇਨ ਕਰ ਲੈਂਦਾ ਹੈ।

ਸਟੇਜਿੰਗ (staging) ਵਿੱਚ, ਇਹ ਪ੍ਰਕਿਰਿਆ ਟੁੱਟ ਜਾਂਦੀ ਹੈ। ਲਿੰਕ ਸਾਂਝੇ ਇਨਬਾਕਸਾਂ ਜਾਂ ਪੁਰਾਣੇ ਈਮੇਲ ਐਲੀਏਸਾਂ (aliases) ਵਿੱਚ ਪਹੁੰਚ ਜਾਂਦੇ ਹਨ। ਟੈਸਟਿੰਗ ਇੱਕ ਹਫੜਾ-ਦਫੜੀ ਬਣ ਜਾਂਦੀ ਹੈ।

ਤੁਹਾਨੂੰ ਪਾਸਵਰਡਲੈੱਸ ਅਥੈਂਟੀਕੇਸ਼ਨ (auth) ਨੂੰ ਇੱਕ ਸਿੰਗਲ ਸਿਸਟਮ ਵਜੋਂ ਮੰਨਣਾ ਚਾਹੀਦਾ ਹੈ। ਤੁਹਾਨੂੰ JavaScript ਕਲਾਇੰਟ, Node.js ਬੈਕਐਂਡ, ਈਮੇਲ ਡਿਲੀਵਰੀ, ਅਤੇ ਅੰਤਿਮ ਸੈਸ਼ਨ ਦੀ ਜਾਂਚ ਕਰਨ ਦੀ ਲੋੜ ਹੈ।

ਜੇਕਰ ਤੁਸੀਂ ਇਨਬਾਕਸ ਨੂੰ ਛੱਡ ਦਿੰਦੇ ਹੋ, ਤਾਂ ਤੁਹਾਡੇ API ਟੈਸਟ ਪਾਸ ਹੋ ਸਕਦੇ ਹਨ ਪਰ ਉਪਭੋਗਤਾ ਅਨੁਭਵ (user experience) ਫੇਲ ਹੋ ਸਕਦਾ ਹੈ।

ਆਮ ਅਸਫਲਤਾਵਾਂ ਵਿੱਚ ਸ਼ਾਮਲ ਹਨ:

  • ਬੈਕਐਂਡ ਰੀਟ੍ਰਾਈ (retry) ਤੋਂ ਬਾਅਦ ਦੋ ਲਿੰਕ ਭੇਜਦਾ ਹੈ।
  • ਈਮੇਲ ਗਲਤ ਐਨਵਾਇਰਨਮੈਂਟ ਹੋਸਟ (environment host) ਵੱਲ ਇਸ਼ਾਰਾ ਕਰਦੀ ਹੈ।
  • ਇੱਕ ਪੁਰਾਣਾ ਲਿੰਕ ਉਮੀਦ ਤੋਂ ਵੱਧ ਸਮੇਂ ਤੱਕ ਕੰਮ ਕਰਦਾ ਹੈ।
  • ਕੁਕੀ (cookie) ਸੈੱਟ ਹੋਣ ਤੋਂ ਪਹਿਲਾਂ ਫਰੰਟਐਂਡ ਉਪਭੋਗਤਾ ਨੂੰ ਲੌਗਇਨ ਵਜੋਂ ਦਰਜ ਕਰ ਦਿੰਦਾ ਹੈ।

ਹਰ ਟੈਸਟ ਰਨ ਲਈ ਇੱਕ ਵੱਖਰੇ (isolated) ਇਨਬਾਕਸ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਤੁਹਾਡੇ ਡੇਟਾ ਨੂੰ ਸਾਫ਼ ਰੱਖਦਾ ਹੈ ਅਤੇ ਡੀਬੱਗਿੰਗ (debugging) ਨੂੰ ਤੇਜ਼ ਬਣਾਉਂਦਾ ਹੈ। ਜੇਕਰ ਤਿੰਨ ਟੈਸਟ ਇੱਕੋ ਇਨਬਾਕਸ ਦੀ ਵਰਤੋਂ ਕਰਦੇ ਹਨ, ਤਾਂ ਤੁਸੀਂ ਗਲਤੀ ਨਹੀਂ ਲੱਭ ਸਕੋਗੇ।

ਇਸ ਵਰਕਫਲੋ (workflow) ਦੀ ਪਾਲਣਾ ਕਰੋ:

  • ਆਪਣੇ UI ਜਾਂ ਐਂਡ-ਟੂ-ਐਂਡ ਟੈਸਟ ਤੋਂ ਲੌਗਇਨ ਨੂੰ ਟ੍ਰਿਗਰ ਕਰੋ।
  • Node.js ਨੂੰ ਤੁਹਾਡੇ ਸਟੇਜਿੰਗ ਪਾਥ ਰਾਹੀਂ ਲਿੰਕ ਭੇਜਣ ਦਿਓ।
  • ਇੱਕ ਨਵੇਂ, ਵੱਖਰੇ ਇਨਬਾਕਸ ਵਿੱਚ ਸੁਨੇਹੇ ਨੂੰ ਕੈਪਚਰ ਕਰੋ।
  • ਉਸੇ ਬ੍ਰਾਊਜ਼ਰ ਸੈਸ਼ਨ ਵਿੱਚ ਸਭ ਤੋਂ ਨਵਾਂ ਲਿੰਕ ਖੋਲ੍ਹੋ।
  • ਅਥੈਂਟੀਕੇਟਡ ਸਟੇਟ (authenticated state) ਦੀ ਪੁਸ਼ਟੀ ਕਰੋ।

ਇੱਕ ਚੰਗਾ ਟੈਸਟ ਸਿਰਫ਼ ਇਹ ਚੈੱਕ ਕਰਨ ਤੋਂ ਵੱਧ ਕੁਝ ਕਰਦਾ ਹੈ ਕਿ ਈਮੇਲ ਆਈ ਹੈ ਜਾਂ ਨਹੀਂ। ਇਹਨਾਂ ਕਦਮਾਂ ਦੀ ਕ੍ਰਮਵਾਰ ਜਾਂਚ ਕਰੋ:

  • ਲੌਗਇਨ ਰਿਕਵੈਸਟ ਇੱਕ ਨਿਊਟਰਲ ਸਫਲਤਾ ਪ੍ਰਤੀਕਿਰਿਆ (neutral success response) ਵਾਪਸ ਕਰਦੀ ਹੈ।
  • ਸਿਰਫ਼ ਇੱਕ ਹੀ ਨਵਾਂ ਮੈਜਿਕ ਲਿੰਕ ਮੌਜੂਦ ਹੈ।
  • ਲਿੰਕ ਹੋਸਟ ਤੁਹਾਡੇ ਸਟੇਜਿੰਗ ਡੋਮੇਨ ਨਾਲ ਮੇਲ ਖਾਂਦਾ ਹੈ।
  • ਟੋਕਨ ਇੱਕ ਵੈਧ ਸੈਸ਼ਨ ਸ਼ੁਰੂ ਕਰਦਾ ਹੈ।
  • ਉਹੀ ਲਿੰਕ ਦੁਬਾਰਾ ਵਰਤਣ 'ਤੇ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ।
  • ਐਪ ਮੈਨੂਅਲ ਰਿਫ੍ਰੈਸ਼ ਤੋਂ ਬਿਨਾਂ UI ਨੂੰ ਅਪਡੇਟ ਕਰਦੀ ਹੈ।

ਬੈਕਐਂਡ 'ਤੇ, ਆਪਣੇ ਲੌਗਸ (logs) ਨਾਲ ਇੱਕ ਕੋਰੀਲੇਸ਼ਨ ID (correlation ID) ਜੋੜੋ। ਇਹ ਤੁਹਾਨੂੰ ਰਿਕਵੈਸਟ ਦੇ ਬਣਨ ਤੋਂ ਲੈ ਕੇ ਅੰਤਿਮ ਸੈਸ਼ਨ ਤੱਕ ਟ੍ਰੈਕ ਕਰਨ ਵਿੱਚ ਮਦਦ ਕਰਦਾ ਹੈ।

ਆਪਣੇ ਸਾਰੇ ਟੈਸਟਾਂ ਨੂੰ ਈਮੇਲ-ਡਰਿਵਨ ਟੈਸਟਾਂ ਨਾਲ ਨਾ ਬਦਲੋ। ਲੌਜਿਕ ਲਈ ਤੇਜ਼ ਯੂਨਿਟ ਟੈਸਟਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ ਅਤੇ ਆਪਣੇ ਸਟੇਜਿੰਗ ਸੂਟ ਲਈ ਇਸ ਇਨਬਾਕਸ ਪਾਥ ਦੀ ਵਰਤੋਂ ਕਰੋ।

ਸ਼ਿਪ (ship) ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਇਸ ਚੈੱਕਲਿਸਟ ਦੀ ਵਰਤੋਂ ਕਰੋ:

  • ਇੱਕ ਲੌਗਇਨ ਰਿਕਵੈਸਟ ਸਿਰਫ਼ ਇੱਕ ਹੀ ਐਕਟਿਵ ਲਿੰਕ ਬਣਾਉਂਦੀ ਹੈ।
  • ਸਟੇਜਿੰਗ ਵਿੱਚ ਸਭ ਤੋਂ ਨਵੀਂ ਈਮੇਲ ਨੂੰ ਪਾਰਸ (parse) ਕਰਨਾ ਆਸਾਨ ਹੈ।
  • ਲਿੰਕ ਸਹੀ ਹੋਸਟ 'ਤੇ ਉਪਭੋਗਤਾ ਨੂੰ ਸਾਈਨ-ਇਨ ਕਰਦਾ ਹੈ।
  • ਲਿੰਕ ਦੀ ਦੋ ਵਾਰ ਵਰਤੋਂ ਨਹੀਂ ਕੀਤੀ ਜਾ ਸਕਦੀ।
  • ਲੌਗਆਊਟ ਅਤੇ ਦੁਬਾਰਾ ਲੌਗਇਨ ਕਰਨ ਨਾਲ ਇੱਕ ਸਾਫ਼ ਨਵਾਂ ਟੋਕਨ ਮਿਲਦਾ ਹੈ।

ਸਰੋਤ: https://dev.to/ryanlee91/how-to-test-passwordless-login-emails-in-javascript-without-inbox-chaos-56d0