Как распаковать байтовый массив из snappy (frames) в контексте теста Cypress? - PullRequest
0 голосов
/ 25 июня 2019

Мы используем кипарисовые тесты для всех наших соответствующих КИ; это не то, что я могу изменить. Я работаю над интеграционным тестом для сервиса, который не общается ни с каким интерфейсом. Он доставляет результат (по существу) в виде документа S3, отправляя ведро и ключ. Связанный документ сжато (в формате кадра) CBOR-данных. Мне нужно распаковать его, декодировать (это легко), а затем сделать утверждения для данных.

Распаковка это не супер сложно в целом; Есть библиотеки на большинстве основных языков, включая JavaScript. Однако я не могу найти библиотеку javascript на npm, которая может с этим справиться, из-за следующих проблем:

  1. Данные мгновенно сжаты в формате кадра ; библиотеки, которые я нашел здесь [https://www.npmjs.com/search?q=snappy], либо не поддерживают формат в рамке, либо делают это только для потоков, что приводит к ...
  2. Все способы взаимодействия с Streams, которые я обнаружил (и я надеюсь на ошибку пользователя), требуют взаимодействия с файловой системой. Тем не менее, даже импорт fs в тесте кипариса, похоже, затрудняет работу, поскольку он выполняется в (безголовом) браузере вместо сценария на стороне сервера.

Я приветствую любые советы, которые могут быть. Я не являюсь носителем javascript и надеюсь, что мне не хватает чего-то очевидного.

Обратите внимание, что я не слишком озабочен производительностью; в то время как интересующий сервис обрабатывает большие объемы данных, тестовые устройства являются небольшими (не более нескольких килобайт), и даже очень медленный декомпрессор здесь не будет проблемой.

...