laravel.spec.tsx 1.7 KB

1234567891011121314151617181920212223242526272829303132333435363738394041424344454647484950515253545556575859606162636465
  1. import {EventFixture} from 'sentry-fixture/event';
  2. import {render, screen} from 'sentry-test/reactTestingLibrary';
  3. import ContextCard from 'sentry/components/events/contexts/contextCard';
  4. import {
  5. getLaravelContextData,
  6. type LaravelContext,
  7. } from 'sentry/components/events/contexts/platformContext/laravel';
  8. const MOCK_LARAVEL_CONTEXT: LaravelContext = {
  9. type: 'default',
  10. // No known keys, but extra data is still valid and preserved
  11. extra_data: 'something',
  12. unknown_key: 123,
  13. };
  14. const MOCK_REDACTION = {
  15. extra_data: {
  16. '': {
  17. rem: [['organization:0', 's', 0, 0]],
  18. len: 5,
  19. },
  20. },
  21. };
  22. describe('LaravelContext', function () {
  23. it('returns values and according to the parameters', function () {
  24. expect(getLaravelContextData({data: MOCK_LARAVEL_CONTEXT})).toEqual([
  25. {
  26. key: 'extra_data',
  27. subject: 'extra_data',
  28. value: 'something',
  29. meta: undefined,
  30. },
  31. {
  32. key: 'unknown_key',
  33. subject: 'unknown_key',
  34. value: 123,
  35. meta: undefined,
  36. },
  37. ]);
  38. });
  39. it('renders with meta annotations correctly', function () {
  40. const event = EventFixture({
  41. _meta: {contexts: {laravel: MOCK_REDACTION}},
  42. });
  43. render(
  44. <ContextCard
  45. event={event}
  46. type={'default'}
  47. alias={'laravel'}
  48. value={{...MOCK_LARAVEL_CONTEXT, extra_data: ''}}
  49. />
  50. );
  51. expect(screen.getByText('Laravel Context')).toBeInTheDocument();
  52. expect(screen.getByText('unknown_key')).toBeInTheDocument();
  53. expect(screen.getByText('123')).toBeInTheDocument();
  54. expect(screen.getByText('extra_data')).toBeInTheDocument();
  55. expect(screen.getByText(/redacted/)).toBeInTheDocument();
  56. });
  57. });