SmsRateLimitTest.php 1.0 KB

1234567891011121314151617181920212223242526272829303132333435
  1. <?php
  2. namespace iBrand\Sms\Test;
  3. class SmsRateLimitTest extends SmsTest
  4. {
  5. public function testRateLimit()
  6. {
  7. //1. test success mobile.
  8. $response = $this->post('sms/verify-code', ['mobile' => '18973305743']);
  9. $response
  10. ->assertStatus(200)
  11. ->assertJson(['success' => true, 'message' => '短信发送成功']);
  12. //2. test repeat in 60 seconds.
  13. $response = $this->post('sms/verify-code', ['mobile' => '18973305743']);
  14. $response
  15. ->assertStatus(200)
  16. ->assertJson(['success' => false, 'message' => '每60秒发送一次']);
  17. //3. test invalid mobile.
  18. $response = $this->post('sms/verify-code', ['mobile' => '10000000000']);
  19. $response
  20. ->assertStatus(200)
  21. ->assertJson(['success' => false, 'message' => '无效手机号码']);
  22. //3. test invalid mobile.
  23. $response = $this->post('sms/verify-code', ['mobile' => '10000000000']);
  24. $response->assertStatus(429);
  25. $this->assertSame($response->getContent(), json_encode(["message" => "Too many attempts, please slow down the request.", "status_code" => 429]));
  26. }
  27. }