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

ਡੈਮੋ ਵਿੱਚ ਪਾਸਵਰਡਲੈੱਸ ਲੌਗਇਨ ਆਸਾਨ ਲੱਗਦਾ ਹੈ। ਇੱਕ ਯੂਜ਼ਰ ਈਮੇਲ ਦਰਜ ਕਰਦਾ ਹੈ। ਇੱਕ ਮੈਜਿਕ ਲਿੰਕ ਆਉਂਦਾ ਹੈ। ਸੈਸ਼ਨ ਸ਼ੁਰੂ ਹੋ ਜਾਂਦਾ ਹੈ।

ਸਟੇਜਿੰਗ (staging) ਵਿੱਚ, ਇਹ ਪ੍ਰਕਿਰਿਆ ਉਲਝ ਜਾਂਦੀ ਹੈ। ਲਿੰਕ ਸਾਂਝੇ ਇਨਬਾਕਸਾਂ ਜਾਂ ਪੁਰਾਣੇ ਐਲੀਏਸਾਂ (aliases) ਵਿੱਚ ਪਹੁੰਚ ਜਾਂਦੇ ਹਨ। ਇਸ ਨਾਲ ਫਾਲਤੂ ਦਾ ਸ਼ੋਰ (noise) ਪੈਦਾ ਹੁੰਦਾ ਹੈ।

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

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

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

ਹਰ ਟੈਸਟ ਰਨ ਲਈ ਇੱਕ ਵੱਖਰੇ (isolated) ਇਨਬਾਕਸ ਦੀ ਵਰਤੋਂ ਕਰੋ। ਇਹ ਟੈਸਟਿੰਗ ਡੇਟਾ ਨੂੰ ਟੀਮ ਦੇ ਮੇਲਬਾਕਸਾਂ ਵਿੱਚ ਜਾਣ ਤੋਂ ਰੋਕਦਾ ਹੈ। ਰਨਜ਼ ਨੂੰ ਵੱਖਰਾ ਰੱਖਣ ਲਈ ਸਟੇਜਿੰਗ ਲਈ ਡਿਸਪੋਜ਼ੇਬਲ (disposable) ਈਮੇਲ ਸੇਵਾਵਾਂ ਦੀ ਵਰਤੋਂ ਕਰੋ।

ਆਇਸੋਲੇਸ਼ਨ (Isolation) ਡੀਬੱਗਿੰਗ ਨੂੰ ਆਸਾਨ ਬਣਾਉਂਦੀ ਹੈ। ਜੇਕਰ ਕੋਈ ਟੈਸਟ ਫੇਲ ਹੋ ਜਾਂਦਾ ਹੈ, ਤਾਂ ਤੁਹਾਨੂੰ ਇੱਕ ਇਨਬਾਕਸ ਅਤੇ ਇੱਕ ਯੂਜ਼ਰ ਜਰਨੀ ਦਿਖਾਈ ਦੇਣੀ ਚਾਹੀਦੀ ਹੈ। ਤੁਹਾਨੂੰ ਪਤਾ ਹੋਣਾ ਚਾਹੀਦਾ ਹੈ ਕਿ ਕਿਹੜਾ ਸੁਨੇਹਾ ਕਿਸ ਬਿਲਡ (build) ਦਾ ਹੈ।

ਇੱਕ ਚੰਗਾ ਟੈਸਟ ਇਹਨਾਂ ਕਦਮਾਂ ਦੀ ਕ੍ਰਮਵਾਰ ਜਾਂਚ ਕਰਦਾ ਹੈ:

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

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

ਆਪਣੇ ਸਾਰੇ ਟੈਸਟਾਂ ਨੂੰ ਈਮੇਲ ਟੈਸਟਾਂ ਨਾਲ ਨਾ ਬਦਲੋ। ਟੋਕਨ ਲੌਜਿਕ ਅਤੇ ਸੈਸ਼ਨ ਨਿਯਮਾਂ ਲਈ ਤੇਜ਼ ਯੂਨਿਟ ਟੈਸਟਾਂ (unit tests) ਦੀ ਵਰਤੋਂ ਕਰੋ। ਅਸਲ ਯੂਜ਼ਰ ਅਨੁਭਵ ਕੰਮ ਕਰ ਰਿਹਾ ਹੈ, ਇਹ ਸਾਬਤ ਕਰਨ ਲਈ ਈਮੇਲ ਪਾਥ ਦੀ ਵਰਤੋਂ ਕਰੋ।

ਲਾਂਚ ਕਰਨ ਤੋਂ ਪਹਿਲਾਂ ਚੈੱਕਲਿਸਟ:

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

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