| 1234567891011121314151617181920212223242526272829303132333435363738394041 |
- import { describe, expect, it } from 'vitest';
- import { sanitizeMetadata } from '../src/stripe/metadata-sanitize';
- describe('Stripe Metadata Sanitize', () => {
- const metadata = {
- customerEmail: 'test@gmail.com',
- };
- it('should sanitize and create new object metadata', () => {
- const newMetadata = sanitizeMetadata(metadata);
- expect(newMetadata).toEqual(metadata);
- expect(newMetadata).not.toBe(metadata);
- });
- it('should omit fields that have key length exceed 40 characters', () => {
- const newMetadata = sanitizeMetadata({
- ...metadata,
- reallylongkey_reallylongkey_reallylongkey_reallylongkey_reallylongkey: 1,
- });
- expect(newMetadata).toEqual(metadata);
- });
- it('should omit fields that have value length exceed 500 characters', () => {
- const reallyLongText = Array(501).fill('a').join();
- const newMetadata = sanitizeMetadata({
- ...metadata,
- complexField: reallyLongText,
- });
- expect(newMetadata).toEqual(metadata);
- });
- it('should truncate metadata that have more than 50 keys', () => {
- const moreThan50KeysMetadata = Array(51)
- .fill('a')
- .reduce((obj, val, idx) => {
- obj[idx] = val;
- return obj;
- }, {});
- const newMetadata = sanitizeMetadata(moreThan50KeysMetadata);
- expect(Object.keys(newMetadata).length).toEqual(50);
- delete moreThan50KeysMetadata['50'];
- expect(newMetadata).toEqual(moreThan50KeysMetadata);
- });
- });
|