websocket_message_test.dart 2.0 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263
  1. import 'package:flutter_test/flutter_test.dart';
  2. import 'package:asr_client/models/websocket_message.dart';
  3. void main() {
  4. group('WebSocketMessage', () {
  5. test('AudioMessage encodes to JSON', () {
  6. const message = AudioMessage(data: 'base64data');
  7. expect(message.toJsonString(), '{"type":"audio","data":"base64data"}');
  8. });
  9. test('TranscribeMessage encodes to JSON', () {
  10. const message = TranscribeMessage();
  11. expect(message.toJsonString(), '{"type":"transcribe"}');
  12. });
  13. test('ClearMessage encodes to JSON', () {
  14. const message = ClearMessage();
  15. expect(message.toJsonString(), '{"type":"clear"}');
  16. });
  17. });
  18. group('ServerMessage', () {
  19. test('parses connected message', () {
  20. final message = ServerMessage.fromJsonString(
  21. '{"type":"connected","model":{"name":"tiny"}}',
  22. );
  23. expect(message, isA<ConnectedMessage>());
  24. expect((message as ConnectedMessage).model['name'], 'tiny');
  25. });
  26. test('parses transcript message', () {
  27. final message = ServerMessage.fromJsonString(
  28. '{"type":"transcript","text":"hello","language":"en"}',
  29. );
  30. expect(message, isA<TranscriptMessage>());
  31. expect((message as TranscriptMessage).text, 'hello');
  32. expect(message.language, 'en');
  33. });
  34. test('parses cleared message', () {
  35. final message = ServerMessage.fromJsonString('{"type":"cleared"}');
  36. expect(message, isA<ClearedMessage>());
  37. });
  38. test('parses error message', () {
  39. final message = ServerMessage.fromJsonString(
  40. '{"type":"error","message":"oops"}',
  41. );
  42. expect(message, isA<ErrorMessage>());
  43. expect((message as ErrorMessage).message, 'oops');
  44. });
  45. test('returns error for invalid JSON', () {
  46. final message = ServerMessage.fromJsonString('not json');
  47. expect(message, isA<ErrorMessage>());
  48. });
  49. test('returns error for unknown type', () {
  50. final message = ServerMessage.fromJsonString('{"type":"unknown"}');
  51. expect(message, isA<ErrorMessage>());
  52. });
  53. });
  54. }