{"version":3,"sources":["https://lively-kernel.org/voices/parsing-data/testing/avf-data-test.js"],"names":["expect","TracedData","default","MetaData","describe","serializedSampleObject","deserializedObject","before","deserialize","it","to","be","an","instanceof","equal","user","source","timestamp","rawSampleIndividual","parsedIndividual","expectedValues","testedKeys","fetch","then","ea","json","Object","keys","numberOfObjectsInPrevChain","currentIndividual","prev","length","forEach","key","getItem","valuesFromDeserializedIndividual","getItems","eql","exampleKey","expectedHistory","historyFromDeserializedIndividual","getHistory"],"mappings":"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","file":"avf-data-test.js","sourcesContent":["import {expect} from 'src/external/chai.js'\nimport  {default as TracedData, MetaData} from 'https://lively-kernel.org/voices/parsing-data/avf-data.mjs'\n\ndescribe('MetaData', function() {\n  describe('deserialize', function() {\n    \n    let serializedSampleObject;\n    let deserializedObject;\n    \n    before(() => {\n      serializedSampleObject = {\n        \"Source\": \"/app/src/analysis_file.py:205:generate\",\n        \"Timestamp\": \"2019-09-25T09:15:50.261447+00:00\",\n        \"User\": \"alexander@africasvoices.org\"\n      };\n      deserializedObject = MetaData.deserialize(serializedSampleObject)  \n    })\n\n    it('should return new MetaData Object', function() {\n      expect(deserializedObject).to.be.an.instanceof(MetaData)\n    });\n    \n    it('should set correct user, source and time', function() {\n      expect(serializedSampleObject['User']).to.equal(deserializedObject.user)\n      expect(serializedSampleObject['Source']).to.equal(deserializedObject.source)\n      expect(serializedSampleObject['Timestamp']).to.equal(deserializedObject.timestamp)\n    });\n  })\n})\n\ndescribe('TracedData', function() {\n  \n  let rawSampleIndividual;\n  let parsedIndividual;\n  let expectedValues;\n  let testedKeys;\n  \n  before(async () => {\n    rawSampleIndividual = await fetch(\"https://lively-kernel.org/voices/parsing-data/testing/resources/exampleSerializedIndividual.json\").then( ea => ea.json())\n    parsedIndividual = TracedData.deserialize(rawSampleIndividual)\n    expectedValues = {\n      \"suggestions_NA\": \"0\",\n      \"rqa_s04e01_NC\": \"1\",\n      \"rqa_s04e01_NA\": \"0\",\n      \"gender\": \"male\",\n      \"rqa_s04e01_cooperation_between_government_and_people\": \"0\",\n      \"suggestions_improve_radio_stations\": \"1\"\n    }\n    testedKeys = Object.keys(expectedValues)\n  })\n  \n  describe('deserialize', function() {\n    it('should return new TracedData Object', function() {\n      expect(parsedIndividual).to.be.an.instanceof(TracedData)\n    });\n    \n    it('should have the same number of objects as the serialized version', function() {\n      let numberOfObjectsInPrevChain = 1;\n      let currentIndividual = parsedIndividual\n      while(currentIndividual.prev !== null) {\n        numberOfObjectsInPrevChain += 1;\n        currentIndividual = currentIndividual.prev\n      }\n      expect(rawSampleIndividual.length).to.equal(numberOfObjectsInPrevChain)\n    })\n  })\n  \n  describe('getItem', function() {\n    it('should return the same items as the serialized version', function() {\n      testedKeys.forEach((key) => {\n        expect(parsedIndividual.getItem(key)).to.equal(expectedValues[key])\n      })\n    })\n  })\n  \n  describe('getItems', function() {\n    it('should return the same items as the serialized version', function() {\n      let valuesFromDeserializedIndividual = parsedIndividual.getItems(Object.keys(expectedValues))\n      expect(valuesFromDeserializedIndividual).to.eql(expectedValues)\n    })\n  })\n  \n  describe('getHistory', function () {\n    it('should return the correct history', function() {\n      let exampleKey = \"rqa_s04e01_NA\"\n      let expectedHistory = [\n        {\"value\": \"0\", \"timestamp\": \"2019-09-25T08:44:54.867646+00:00\", \"source\": \"/app/src/analysis_file.py:165:generate\"},\n        {\"value\": \"0\", \"timestamp\": \"2019-09-25T09:15:50.427098+00:00\", \"source\": \"/app/src/analysis_file.py:196:generate\"}\n      ]\n      let historyFromDeserializedIndividual = parsedIndividual.getHistory(exampleKey)\n      expect(historyFromDeserializedIndividual).to.eql(expectedHistory)\n    })\n  })\n})"]}