{
  "schemaVersion": 1,
  "evidenceId": "pos-v1.3.0-inventory-lifecycle",
  "status": "passed",
  "testedAt": "2026-08-20T14:35:20.798Z",
  "canonicalPage": "https://posnic.com/features",
  "claimScope": "A synthetic, endpoint-level inventory lifecycle through the real Posnic v1.3.0 Express API and an isolated local MongoDB database.",
  "source": {
    "repository": "Posnic/POS",
    "releaseTag": "v1.3.0",
    "commit": "b531ef4308c4dc3a25f250551a54fc5616e3b8d9",
    "cleanCheckout": true,
    "files": [
      {
        "path": "api/app.js",
        "sha256": "6ff6247f4bb4235a8df07090d79b9bc07ef75a6eccf49f387f987800ed78e82f"
      },
      {
        "path": "api/src/routes/install.routes.js",
        "sha256": "7ae76fbd2032dd7b9e47d0eab7599cceb4c0333b7f9a78ca68a34deef3a3feab"
      },
      {
        "path": "api/src/routes/receivings.routes.js",
        "sha256": "e2c893ef2a9311d69c76012a3ad37a179ffd9fc408730d9651ac429a699c478a"
      },
      {
        "path": "api/src/routes/sales.routes.js",
        "sha256": "885955494ccf987f5b235a07d74cca30abf5a22875458201e1faa1facbc3fba4"
      },
      {
        "path": "api/src/services/install.service.js",
        "sha256": "c954b088a9770e5acf1488cac5efe967d20faf59e39cb98090d3a33c34a9a5a7"
      },
      {
        "path": "api/src/services/sale.service.js",
        "sha256": "51b177d8f80e679aaf026cbbe109fe59fd0c67a554938f26f4790263999130cd"
      },
      {
        "path": "api/src/models/receiving.model.js",
        "sha256": "d01a40bc520e91b3da685210d902a6bf0ff5290b631b614d46bbc9c2efa3f521"
      },
      {
        "path": "api/src/repositories/sale.repository.js",
        "sha256": "9059163f628205b78382dd72f97e7b6e3af4ac6c56c2670c2a976e2714563703"
      }
    ]
  },
  "execution": {
    "interface": "Real HTTP requests to the assembled Express application",
    "database": "Isolated loopback MongoDB database created for the run and dropped during cleanup",
    "mongodbVersion": "7.0.14",
    "nodeVersion": "v24.19.0",
    "platform": "Windows x64",
    "timingsPublishedAsPerformanceBenchmark": false
  },
  "scenario": [
    "Installed one new synthetic supermarket shop",
    "Authenticated and read its one-item seeded catalog",
    "Received 20 units from the default supplier",
    "Sold two units to the walk-in customer for cash",
    "Replayed the identical billing transaction ID",
    "Returned one of the two sold units",
    "Replayed the identical refund payload",
    "Reconciled the sales list, graphical report, stored documents and stock ledger"
  ],
  "result": {
    "assertionsPassed": 21,
    "assertionsFailed": 0,
    "inventory": {
      "startingQuantity": 100,
      "receivedQuantity": 20,
      "afterReceivingQuantity": 120,
      "soldQuantity": 2,
      "afterSaleQuantity": 118,
      "returnedQuantity": 1,
      "finalQuantity": 119,
      "equation": "100 + 20 - 2 + 1 = 119"
    },
    "sale": {
      "storedSalesAfterReplay": 1,
      "originalTotalInr": 276,
      "returnedTotalInr": 138,
      "remainingTotalInr": 138,
      "paymentMode": "Cash",
      "paymentStatus": "Paid",
      "process": "PartialReturn",
      "returnTransactionsAfterReplay": 1
    },
    "duplicateGuards": {
      "saleReplayHttpStatus": 200,
      "saleReplayIdentified": true,
      "saleReplayCreatedSecondSale": false,
      "saleReplayDeductedStockAgain": false,
      "returnReplayHttpStatus": 409,
      "returnReplayRestoredStockAgain": false
    },
    "report": {
      "netSalesInr": 138,
      "averageSaleInr": 138,
      "grossProfitInr": 7.75
    },
    "persistence": {
      "receivingDocuments": 1,
      "salesDocuments": 1,
      "stockLogDocuments": 3,
      "stockLogProcesses": [
        "Add Receiving",
        "Add Sale",
        "Return Sale"
      ]
    }
  },
  "limitations": [
    "This was synthetic acceptance evidence, not customer production data.",
    "The run exercised the HTTP API, persistence and report calculation; it did not drive the packaged Electron interface.",
    "No barcode scanner, receipt printer, cash drawer, weighing scale or payment terminal was connected.",
    "Cash was a recorded payment mode; no external payment network or settlement was exercised.",
    "The run did not simulate a power loss, operating-system network loss, multi-device concurrency or a full trading day.",
    "Observed request durations were not published as a throughput or latency benchmark."
  ],
  "relatedEvidence": [
    "https://posnic.com/features",
    "https://posnic.com/posnic-facts",
    "https://posnic.com/assets/posnic-product-facts.json",
    "https://github.com/Posnic/POS/releases/tag/v1.3.0",
    "https://github.com/Posnic/POS/tree/b531ef4308c4dc3a25f250551a54fc5616e3b8d9"
  ]
}
