@tiledesk/tiledesk-server 2.10.100 → 2.10.101

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
package/test/kbRoute.js CHANGED
@@ -1102,7 +1102,6 @@ describe('KbRoute', () => {
1102
1102
 
1103
1103
  // if (err) { console.error("err: ", err); }
1104
1104
  // if (log) { console.log("get all namespaces res.body: ", res.body); }
1105
- // console.log("get all namespaces res.body: ", res.body);
1106
1105
 
1107
1106
  // res.should.have.status(200);
1108
1107
  // res.body.should.be.a('array');
@@ -1487,558 +1486,323 @@ describe('KbRoute', () => {
1487
1486
  // })
1488
1487
 
1489
1488
  })
1490
- });
1491
-
1492
- // OLD TESTS
1493
- // it('createNewKb', (done) => {
1494
-
1495
- // var email = "test-signup-" + Date.now() + "@email.com";
1496
- // var pwd = "pwd";
1497
-
1498
- // userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1499
- // projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
1500
-
1501
- // let kb = {
1502
- // name: "example_name5",
1503
- // type: "url",
1504
- // source: "https://www.exampleurl5.com",
1505
- // content: "",
1506
- // }
1507
-
1508
- // chai.request(server)
1509
- // .post('/' + savedProject._id + '/kb')
1510
- // .auth(email, pwd)
1511
- // .send(kb) // can be empty
1512
- // .end((err, res) => {
1513
-
1514
- // if (err) { console.error("err: ", err); }
1515
- // if (log) { console.log("create kb res.body: ", res.body); }
1516
-
1517
- // res.should.have.status(200);
1518
- // res.body.should.be.a('object');
1519
-
1520
- // done();
1521
-
1522
-
1523
- // })
1524
-
1525
- // });
1526
- // });
1527
-
1528
- // }).timeout(10000);
1529
-
1530
- // logic in standby
1531
- // it('createNewKb-namespaceNotBelongsProject', (done) => {
1532
-
1533
- // var email = "test-signup-" + Date.now() + "@email.com";
1534
- // var pwd = "pwd";
1535
-
1536
- // userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1537
- // projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
1538
-
1539
- // let kb = {
1540
- // name: "example_name5",
1541
- // type: "url",
1542
- // source: "https://www.exampleurl5.com",
1543
- // content: "",
1544
- // namespace: "fakenamespace"
1545
- // }
1546
-
1547
- // chai.request(server)
1548
- // .post('/' + savedProject._id + '/kb')
1549
- // .auth(email, pwd)
1550
- // .send(kb) // can be empty
1551
- // .end((err, res) => {
1552
-
1553
- // if (err) { console.error("err: ", err); }
1554
- // if (log) { console.log("create kb res.body: ", res.body); }
1555
-
1556
- // res.should.have.status(403);
1557
- // res.body.should.be.a('object');
1558
- // expect(res.body.success).to.equal(false);
1559
- // expect(res.body.error).to.equal("Not allowed. The namespace does not belong to the current project.");
1560
-
1561
- // done();
1562
-
1563
-
1564
- // })
1565
-
1566
- // });
1567
- // });
1568
-
1569
- //}).timeout(10000);
1570
-
1571
- // it('createNewKb-replaceNamespace', (done) => {
1572
-
1573
- // var email = "test-signup-" + Date.now() + "@email.com";
1574
- // var pwd = "pwd";
1575
-
1576
- // userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1577
- // projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
1578
-
1579
- // let kb = {
1580
- // name: "example_name5",
1581
- // type: "url",
1582
- // source: "https://www.exampleurl5.com",
1583
- // content: "",
1584
- // namespace: "fakenamespace"
1585
- // }
1586
-
1587
- // chai.request(server)
1588
- // .post('/' + savedProject._id + '/kb')
1589
- // .auth(email, pwd)
1590
- // .send(kb) // can be empty
1591
- // .end((err, res) => {
1592
-
1593
- // if (err) { console.error("err: ", err); }
1594
- // if (log) { console.log("create kb res.body: ", res.body); }
1595
-
1596
- // res.should.have.status(200);
1597
- // res.body.should.be.a('object');
1598
- // expect(res.body.value.namespace).not.equal("fakenamespace");
1599
- // expect(res.body.value.namespace).to.equal(savedProject._id.toString());
1600
-
1601
- // done();
1602
-
1603
-
1604
- // })
1605
-
1606
- // });
1607
- // });
1608
-
1609
- // }).timeout(10000);
1610
-
1611
- // it('getWithQueries', (done) => {
1612
-
1613
- // var email = "test-signup-" + Date.now() + "@email.com";
1614
- // var pwd = "pwd";
1615
-
1616
- // userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1617
- // projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
1618
-
1619
- // let kb1 = {
1620
- // name: "example_name1",
1621
- // type: "url",
1622
- // source: "https://www.exampleurl1.com",
1623
- // content: ""
1624
- // }
1625
-
1626
- // let kb2 = {
1627
- // name: "example_name2",
1628
- // type: "text",
1629
- // source: "example_name2",
1630
- // content: "example content"
1631
- // }
1632
-
1633
- // let kb3 = {
1634
- // name: "example_name3",
1635
- // type: "url",
1636
- // source: "https://www.exampleurl3.com",
1637
- // content: ""
1638
- // }
1639
-
1640
- // chai.request(server)
1641
- // .post('/' + savedProject._id + "/kb")
1642
- // .auth(email, pwd)
1643
- // .send(kb1)
1644
- // .end((err, res) => {
1645
- // if (log) { console.log("create kb res.body: ", res.body); }
1646
- // res.should.have.status(200);
1647
-
1648
- // setTimeout(() => {
1649
- // chai.request(server)
1650
- // .post('/' + savedProject._id + "/kb")
1651
- // .auth(email, pwd)
1652
- // .send(kb2)
1653
- // .end((err, res) => {
1654
- // if (log) { console.log("create kb res.body: ", res.body); }
1655
- // res.should.have.status(200);
1656
-
1657
- // setTimeout(() => {
1658
- // chai.request(server)
1659
- // .post('/' + savedProject._id + "/kb")
1660
- // .auth(email, pwd)
1661
- // .send(kb3)
1662
- // .end((err, res) => {
1663
- // if (log) { console.log("create kb res.body: ", res.body); }
1664
- // res.should.have.status(200);
1665
-
1666
- // let query = "?status=100&type=url&limit=5&page=0&direction=-1&sortField=updatedAt&search=example";
1667
- // //let query = "";
1668
- // console.log("query: ", query);
1669
-
1670
- // chai.request(server)
1671
- // .get('/' + savedProject._id + "/kb" + query)
1672
- // .auth(email, pwd)
1673
- // .end((err, res) => {
1674
- // if (log) { console.log("getall res.body: ", res.body); }
1675
- // res.should.have.status(200);
1676
- // res.body.should.be.a('object');
1677
- // res.body.kbs.should.be.a('array');
1678
- // expect(res.body.kbs.length).to.equal(2);
1679
- // expect(res.body.count).to.equal(2);
1680
- // res.body.query.should.be.a('object');
1681
- // expect(res.body.query.status).to.equal(100);
1682
- // expect(res.body.query.limit).to.equal(5);
1683
- // expect(res.body.query.page).to.equal(0);
1684
- // expect(res.body.query.direction).to.equal(-1);
1685
- // expect(res.body.query.sortField).to.equal("updatedAt");
1686
- // expect(res.body.query.search).to.equal("example");
1687
-
1688
- // done();
1689
-
1690
- // })
1691
-
1692
- // })
1693
- // }, 1000)
1694
- // })
1695
- // }, 1000)
1696
-
1697
-
1698
- // })
1699
- // })
1700
- // })
1701
- // }).timeout(20000)
1702
-
1703
- // it('scrapeSingle', (done) => {
1704
-
1705
- // var email = "test-signup-" + Date.now() + "@email.com";
1706
- // var pwd = "pwd";
1707
-
1708
- // userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1709
- // projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
1710
-
1711
- // let kb = {
1712
- // name: "example_name6",
1713
- // type: "url",
1714
- // source: "https://www.exampleurl6.com",
1715
- // content: ""
1716
- // }
1717
-
1718
- // chai.request(server)
1719
- // .post('/' + savedProject._id + '/kb')
1720
- // .auth(email, pwd)
1721
- // .send(kb) // can be empty
1722
- // .end((err, res) => {
1723
- // if (log) { console.log("create kb res.body: ", res.body); }
1724
- // res.should.have.status(200);
1725
-
1726
- // let kbid = res.body.value._id;
1727
- // console.log("kbid: ", kbid)
1728
- // chai.request(server)
1729
- // .post('/' + savedProject._id + "/kb/scrape/single")
1730
- // .auth(email, pwd)
1731
- // .send({ id: kbid })
1732
- // .end((err, res) => {
1733
- // if (log) { console.log("single scrape res.body: ", res.body); }
1734
- // //res.should.have.status(200);
1735
- // // res.body.should.be.a('object');
1736
- // // expect(res.body.id_project).to.equal(savedProject._id.toString())
1737
- // // expect(res.body.maxKbsNumber).to.equal(3);
1738
- // // expect(res.body.maxPagesNumber).to.equal(1000);
1739
- // // expect(res.body.kbs).is.an('array').that.is.empty;
1740
- // done();
1741
-
1742
- // })
1743
-
1744
-
1745
- // // res.body.should.be.a('object');
1746
- // // expect(res.body.id_project).to.equal(savedProject._id.toString());
1747
-
1748
-
1749
-
1750
-
1751
- // })
1752
-
1753
- // });
1754
- // });
1755
-
1756
- // });
1757
-
1758
- // it('scrapeSingle-namespaceNotBelongsProject', (done) => {
1759
-
1760
- // var email = "test-signup-" + Date.now() + "@email.com";
1761
- // var pwd = "pwd";
1762
-
1763
- // userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1764
- // projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
1765
-
1766
- // let kb = {
1767
- // name: "example_name6",
1768
- // type: "url",
1769
- // source: "https://www.exampleurl6.com",
1770
- // content: ""
1771
- // }
1772
-
1773
- // chai.request(server)
1774
- // .post('/' + savedProject._id + '/kb')
1775
- // .auth(email, pwd)
1776
- // .send(kb) // can be empty
1777
- // .end((err, res) => {
1778
- // if (log) { console.log("create kb res.body: ", res.body); }
1779
- // res.should.have.status(200);
1780
-
1781
- // let kbid = res.body.value._id;
1782
- // console.log("kbid: ", kbid)
1783
- // chai.request(server)
1784
- // .post('/' + savedProject._id + "/kb/scrape/single")
1785
- // .auth(email, pwd)
1786
- // .send({ id: kbid })
1787
- // .end((err, res) => {
1788
- // if (log) { console.log("single scrape res.body: ", res.body); }
1789
- // //res.should.have.status(200);
1790
- // // res.body.should.be.a('object');
1791
- // // expect(res.body.id_project).to.equal(savedProject._id.toString())
1792
- // // expect(res.body.maxKbsNumber).to.equal(3);
1793
- // // expect(res.body.maxPagesNumber).to.equal(1000);
1794
- // // expect(res.body.kbs).is.an('array').that.is.empty;
1795
- // done();
1796
-
1797
- // })
1798
-
1799
-
1800
- // // res.body.should.be.a('object');
1801
- // // expect(res.body.id_project).to.equal(savedProject._id.toString());
1802
-
1803
-
1804
-
1805
-
1806
- // })
1807
- // });
1808
- // });
1809
- // });
1810
-
1811
- // it('multiadd', (done) => {
1812
-
1813
- // var email = "test-signup-" + Date.now() + "@email.com";
1814
- // var pwd = "pwd";
1815
-
1816
- // userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1817
- // projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
1818
-
1819
- // chai.request(server)
1820
- // .post('/' + savedProject._id + '/kb/multi')
1821
- // .auth(email, pwd)
1822
- // .set('Content-Type', 'text/plain')
1823
- // .attach('uploadFile', fs.readFileSync(path.resolve(__dirname, './kbUrlsList.txt')), 'kbUrlsList.txt')
1824
- // .end((err, res) => {
1825
-
1826
- // // console.log("res.body: ", res.body)
1827
- // res.should.have.status(200);
1828
- // expect(res.body.length).to.equal(4)
1829
-
1830
- // done();
1831
-
1832
- // // setTimeout(() => {
1833
-
1834
- // // chai.request(server)
1835
- // // .post('/' + savedProject._id + '/kb/multi')
1836
- // // .auth(email, pwd)
1837
- // // .set('Content-Type', 'text/plain')
1838
- // // .attach('uploadFile', fs.readFileSync(path.resolve(__dirname, './kbUrlsList.txt')), 'kbUrlsList.txt')
1839
- // // .end((err, res) => {
1840
1489
 
1841
- // // // console.log("res.body: ", res.body);
1842
- // // res.should.have.status(200);
1843
- // // expect(res.body.length).to.equal(4)
1844
-
1845
- // // done()
1846
- // // })
1847
- // // }, 2000)
1848
-
1849
- // })
1850
-
1851
- // });
1852
- // });
1853
-
1854
- // }).timeout(10000)
1855
-
1856
- // it('multiaddFail', (done) => {
1857
-
1858
- // var email = "test-signup-" + Date.now() + "@email.com";
1859
- // var pwd = "pwd";
1860
-
1861
- // userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1862
- // projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
1863
-
1864
- // chai.request(server)
1865
- // .post('/' + savedProject._id + '/kb/multi')
1866
- // .auth(email, pwd)
1867
- // .set('Content-Type', 'text/plain')
1868
- // .attach('uploadFile', fs.readFileSync(path.resolve(__dirname, './kbUrlsList.txt')), 'kbUrlsList.txt')
1869
- // .end((err, res) => {
1870
-
1871
- // // console.log("res.body: ", res.body)
1872
- // res.should.have.status(200);
1873
- // expect(res.body.length).to.equal(4)
1874
-
1875
- // setTimeout(() => {
1876
-
1877
- // chai.request(server)
1878
- // .post('/' + savedProject._id + '/kb/multi')
1879
- // .auth(email, pwd)
1880
- // .set('Content-Type', 'text/plain')
1881
- // .attach('uploadFile', fs.readFileSync(path.resolve(__dirname, './kbUrlsList.txt')), 'kbUrlsList.txt')
1882
- // .end((err, res) => {
1883
-
1884
- // // console.log("res.body: ", res.body);
1885
- // res.should.have.status(200);
1886
- // expect(res.body.length).to.equal(4)
1887
-
1888
- // done()
1889
- // })
1890
- // }, 2000)
1891
-
1892
- // })
1893
-
1894
- // });
1895
- // });
1896
-
1897
- // }).timeout(10000)
1898
-
1899
- // it('tooManyUrls', (done) => {
1900
-
1901
- // var email = "test-signup-" + Date.now() + "@email.com";
1902
- // var pwd = "pwd";
1903
-
1904
- // userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1905
- // projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
1906
-
1907
- // chai.request(server)
1908
- // .post('/' + savedProject._id + '/kb/multi')
1909
- // .auth(email, pwd)
1910
- // .set('Content-Type', 'text/plain')
1911
- // .attach('uploadFile', fs.readFileSync(path.resolve(__dirname, './TooManykbUrlsList.txt')), 'TooManykbUrlsList.txt')
1912
- // .end((err, res) => {
1913
-
1914
- // // console.log("res.body: ", res.body)
1915
- // res.should.have.status(403);
1916
- // expect(res.body.success).to.equal(false);
1917
- // expect(res.body.error).to.equal("Too many urls. Can't index more than 300 urls at a time.");
1918
-
1919
- // done()
1920
-
1921
- // })
1922
-
1923
- // });
1924
- // });
1925
-
1926
- // })
1490
+ describe('Unanswered Questions', () => {
1491
+ it('add-unanswered-question', (done) => {
1492
+ var email = "test-signup-" + Date.now() + "@email.com";
1493
+ var pwd = "pwd";
1927
1494
 
1928
- // logic in standby
1929
- // it('askkb-namespaceNotBelongsProject', (done) => {
1495
+ userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1496
+ projectService.create("test-unanswered-create", savedUser._id).then(function (savedProject) {
1497
+ chai.request(server)
1498
+ .get('/' + savedProject._id + '/kb/namespace/all')
1499
+ .auth(email, pwd)
1500
+ .end((err, res) => {
1501
+ if (err) { console.error("err: ", err); }
1502
+ res.should.have.status(200);
1503
+ expect(res.body.length).to.equal(1);
1930
1504
 
1931
- // var email = "test-signup-" + Date.now() + "@email.com";
1932
- // var pwd = "pwd";
1505
+ let namespace_id = res.body[0].id;
1933
1506
 
1934
- // userService.signup(email, pwd, "Test Firstname", "Test Lastname").then((savedUser) => {
1935
- // projectService.create("test-kb-qa", savedUser._id).then((savedProject) => {
1507
+ let question = {
1508
+ namespace: namespace_id,
1509
+ question: "Come funziona il prodotto?"
1510
+ }
1936
1511
 
1937
- // /**
1938
- // * README
1939
- // * Namespace should be equal to savedProject._id;
1940
- // * A generic mongodb ID (like user id) is used instead for test porpouse
1941
- // */
1942
- // chai.request(server)
1943
- // .post('/' + savedProject._id + "/kb/qa")
1944
- // .auth(email, pwd)
1945
- // .send({ model: "gpt-4", namespace: savedUser._id, question: "sample question"})
1946
- // .end((err, res) => {
1512
+ chai.request(server)
1513
+ .post('/' + savedProject._id + '/kb/unanswered')
1514
+ .auth(email, pwd)
1515
+ .send(question)
1516
+ .end((err, res) => {
1517
+ if (err) { console.error("err: ", err); }
1518
+ res.should.have.status(200);
1519
+ res.body.should.be.a('object');
1520
+ expect(res.body.namespace).to.equal(namespace_id);
1521
+ expect(res.body.question).to.equal("Come funziona il prodotto?");
1522
+ expect(res.body.id_project).to.equal(savedProject._id.toString());
1523
+ done();
1524
+ });
1525
+ });
1526
+ });
1527
+ });
1528
+ });
1947
1529
 
1948
- // if (err) { console.log("error: ", err) };
1949
- // if (log) { console.log("res.body: ", res.body) };
1530
+ it('get-unanswered-questions', (done) => {
1531
+ var email = "test-signup-" + Date.now() + "@email.com";
1532
+ var pwd = "pwd";
1950
1533
 
1951
- // res.should.have.status(403);
1952
- // res.body.should.be.a('object');
1953
- // expect(res.body.success).to.equal(false);
1954
- // expect(res.body.error).to.equal("Not allowed. The namespace does not belong to the current project.");
1534
+ userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1535
+ projectService.create("test-unanswered-get", savedUser._id).then(function (savedProject) {
1536
+ chai.request(server)
1537
+ .get('/' + savedProject._id + '/kb/namespace/all')
1538
+ .auth(email, pwd)
1539
+ .end((err, res) => {
1540
+ if (err) { console.error("err: ", err); }
1541
+ res.should.have.status(200);
1542
+ expect(res.body.length).to.equal(1);
1955
1543
 
1956
- // done();
1957
- // })
1958
- // })
1959
- // })
1960
- // }).timeout(10000)
1544
+ let namespace_id = res.body[0].id;
1961
1545
 
1546
+ // First add a question
1547
+ let question = {
1548
+ namespace: namespace_id,
1549
+ question: "Come funziona il prodotto?"
1550
+ }
1962
1551
 
1963
- // it('sitemap', (done) => {
1552
+ chai.request(server)
1553
+ .post('/' + savedProject._id + '/kb/unanswered')
1554
+ .auth(email, pwd)
1555
+ .send(question)
1556
+ .end((err, res) => {
1557
+ if (err) { console.error("err: ", err); }
1558
+ res.should.have.status(200);
1964
1559
 
1965
- // var email = "test-signup-" + Date.now() + "@email.com";
1966
- // var pwd = "pwd";
1560
+ // Then get all questions
1561
+ chai.request(server)
1562
+ .get('/' + savedProject._id + '/kb/unanswered?namespace=' + namespace_id)
1563
+ .auth(email, pwd)
1564
+ .end((err, res) => {
1565
+ if (err) { console.error("err: ", err); }
1566
+ if (log) { console.log("get unanswered questions res.body: ", res.body); }
1967
1567
 
1968
- // userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1969
- // projectService.create("test-faqkb-create", savedUser._id).then(function (savedProject) {
1568
+ res.should.have.status(200);
1569
+ res.body.should.be.a('object');
1570
+ expect(res.body.count).to.equal(1);
1571
+ expect(res.body.questions).to.be.an('array');
1572
+ expect(res.body.questions[0].question).to.equal("Come funziona il prodotto?");
1573
+ expect(res.body.questions[0].namespace).to.equal(namespace_id);
1574
+ done();
1575
+ });
1576
+ });
1577
+ });
1578
+ });
1579
+ });
1580
+ });
1970
1581
 
1971
- // chai.request(server)
1972
- // .post('/' + savedProject._id + '/kb/sitemap')
1973
- // .auth(email, pwd)
1974
- // // .send({ sitemap: "https://www.wired.it/sitemap.xml" })
1975
- // .send({ sitemap: "https://gethelp.tiledesk.com/sitemap.xml" })
1976
- // .end((err, res) => {
1582
+ it('delete-unanswered-question', (done) => {
1583
+ var email = "test-signup-" + Date.now() + "@email.com";
1584
+ var pwd = "pwd";
1977
1585
 
1978
- // if (err) { console.log("error: ", err) };
1979
- // if (log) { console.log("res.body: ", res.body) }
1586
+ userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1587
+ projectService.create("test-unanswered-delete", savedUser._id).then(function (savedProject) {
1588
+ chai.request(server)
1589
+ .get('/' + savedProject._id + '/kb/namespace/all')
1590
+ .auth(email, pwd)
1591
+ .end((err, res) => {
1592
+ if (err) { console.error("err: ", err); }
1593
+ res.should.have.status(200);
1594
+ expect(res.body.length).to.equal(1);
1980
1595
 
1981
- // res.should.have.status(200);
1982
- // res.body.should.be.a('object');
1983
- // res.body.sites.should.be.a('array');
1596
+ let namespace_id = res.body[0].id;
1984
1597
 
1985
- // done();
1598
+ // First add a question
1599
+ let question = {
1600
+ namespace: namespace_id,
1601
+ question: "Come funziona il prodotto?"
1602
+ }
1986
1603
 
1987
- // })
1604
+ chai.request(server)
1605
+ .post('/' + savedProject._id + '/kb/unanswered')
1606
+ .auth(email, pwd)
1607
+ .send(question)
1608
+ .end((err, res) => {
1609
+ if (err) { console.error("err: ", err); }
1610
+ res.should.have.status(200);
1611
+ let questionId = res.body._id;
1988
1612
 
1989
- // });
1990
- // });
1613
+ // Then delete it
1614
+ chai.request(server)
1615
+ .delete('/' + savedProject._id + '/kb/unanswered/' + questionId)
1616
+ .auth(email, pwd)
1617
+ .end((err, res) => {
1618
+ if (err) { console.error("err: ", err); }
1619
+ res.should.have.status(200);
1620
+ res.body.should.be.a('object');
1621
+ expect(res.body.success).to.be.true;
1622
+ expect(res.body.message).to.equal("Question deleted successfully");
1991
1623
 
1992
- // }).timeout(10000)
1624
+ // Verify it's deleted
1625
+ chai.request(server)
1626
+ .get('/' + savedProject._id + '/kb/unanswered?namespace=' + namespace_id)
1627
+ .auth(email, pwd)
1628
+ .end((err, res) => {
1629
+ if (err) { console.error("err: ", err); }
1630
+ res.should.have.status(200);
1631
+ expect(res.body.count).to.equal(0);
1632
+ expect(res.body.questions).to.be.an('array').that.is.empty;
1633
+ done();
1634
+ });
1635
+ });
1636
+ });
1637
+ });
1638
+ });
1639
+ });
1640
+ });
1993
1641
 
1994
- // Ask KB
1995
- // it('askkb-key-from-integrations', (done) => {
1642
+ it('delete-all-unanswered-questions', (done) => {
1643
+ var email = "test-signup-" + Date.now() + "@email.com";
1644
+ var pwd = "pwd";
1996
1645
 
1997
- // var email = "test-signup-" + Date.now() + "@email.com";
1998
- // var pwd = "pwd";
1646
+ userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1647
+ projectService.create("test-unanswered-delete-all", savedUser._id).then(function (savedProject) {
1648
+ chai.request(server)
1649
+ .get('/' + savedProject._id + '/kb/namespace/all')
1650
+ .auth(email, pwd)
1651
+ .end((err, res) => {
1652
+ if (err) { console.error("err: ", err); }
1653
+ res.should.have.status(200);
1654
+ expect(res.body.length).to.equal(1);
1999
1655
 
2000
- // userService.signup(email, pwd, "Test Firstname", "Test Lastname").then((savedUser) => {
2001
- // projectService.create("test-kb-qa", savedUser._id).then((savedProject) => {
1656
+ let namespace_id = res.body[0].id;
2002
1657
 
2003
- // chai.request(server)
2004
- // .post('/' + savedProject._id + "/integration/")
2005
- // .auth(email, pwd)
2006
- // .send({ name: "openai", value: { apikey: "sk-testkey", organization: "Testkey" } })
2007
- // .end((err, res) => {
1658
+ // First add two questions
1659
+ let questions = [
1660
+ {
1661
+ namespace: namespace_id,
1662
+ question: "Come funziona il prodotto?"
1663
+ },
1664
+ {
1665
+ namespace: namespace_id,
1666
+ question: "Quali sono i prezzi?"
1667
+ }
1668
+ ];
1669
+
1670
+ Promise.all(questions.map(q =>
1671
+ chai.request(server)
1672
+ .post('/' + savedProject._id + '/kb/unanswered')
1673
+ .auth(email, pwd)
1674
+ .send(q)
1675
+ )).then(() => {
1676
+ // Then delete all questions
1677
+ chai.request(server)
1678
+ .delete('/' + savedProject._id + '/kb/unanswered/namespace/' + namespace_id)
1679
+ .auth(email, pwd)
1680
+ .end((err, res) => {
1681
+ if (err) { console.error("err: ", err); }
1682
+ res.should.have.status(200);
1683
+ res.body.should.be.a('object');
1684
+ expect(res.body.success).to.be.true;
1685
+ expect(res.body.count).to.equal(2);
1686
+ expect(res.body.message).to.equal("All questions deleted successfully");
1687
+
1688
+ // Verify they're deleted
1689
+ chai.request(server)
1690
+ .get('/' + savedProject._id + '/kb/unanswered?namespace=' + namespace_id)
1691
+ .auth(email, pwd)
1692
+ .end((err, res) => {
1693
+ if (err) { console.error("err: ", err); }
1694
+ res.should.have.status(200);
1695
+ expect(res.body.count).to.equal(0);
1696
+ expect(res.body.questions).to.be.an('array').that.is.empty;
1697
+ done();
1698
+ });
1699
+ });
1700
+ });
1701
+ });
1702
+ });
1703
+ });
1704
+ });
2008
1705
 
2009
- // if (err) { console.error("err: ", err) };
2010
- // if (log) { console.log("res.body: ", res.body) };
2011
- // console.log("Integration created..")
1706
+ it('update-unanswered-question', (done) => {
1707
+ var email = "test-signup-" + Date.now() + "@email.com";
1708
+ var pwd = "pwd";
2012
1709
 
2013
- // chai.request(server)
2014
- // .get('/' + savedProject._id + '/kb/namespace/all')
2015
- // .auth(email, pwd)
2016
- // .end((err, res) => {
1710
+ userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1711
+ projectService.create("test-unanswered-update", savedUser._id).then(function (savedProject) {
1712
+ chai.request(server)
1713
+ .get('/' + savedProject._id + '/kb/namespace/all')
1714
+ .auth(email, pwd)
1715
+ .end((err, res) => {
1716
+ if (err) { console.error("err: ", err); }
1717
+ res.should.have.status(200);
1718
+ expect(res.body.length).to.equal(1);
2017
1719
 
2018
- // if (err) { console.error("err: ", err); }
2019
- // if (log) { console.log("get all namespaces res.body: ", res.body); }
2020
-
2021
- // console.log("namespace created..")
1720
+ let namespace_id = res.body[0].id;
2022
1721
 
2023
- // chai.request(server)
2024
- // .post('/' + savedProject._id + "/kb/qa")
2025
- // .auth(email, pwd)
2026
- // .send({ model: "gpt-4o", namespace: savedProject._id, question: "sample question" })
2027
- // .end((err, res) => {
1722
+ // First add a question
1723
+ let question = {
1724
+ namespace: namespace_id,
1725
+ question: "Come funziona il prodotto?"
1726
+ }
2028
1727
 
2029
- // if (err) { console.error("err: ", err) };
2030
- // if (log) { console.log("res.body: ", res.body) };
2031
- // console.log("res.body: ", res.body)
2032
- // done();
2033
- // })
1728
+ chai.request(server)
1729
+ .post('/' + savedProject._id + '/kb/unanswered')
1730
+ .auth(email, pwd)
1731
+ .send(question)
1732
+ .end((err, res) => {
1733
+ if (err) { console.error("err: ", err); }
1734
+ res.should.have.status(200);
1735
+ let questionId = res.body._id;
2034
1736
 
1737
+ // Then update it
1738
+ chai.request(server)
1739
+ .put('/' + savedProject._id + '/kb/unanswered/' + questionId)
1740
+ .auth(email, pwd)
1741
+ .send({ question: "Come funziona il prodotto aggiornato?" })
1742
+ .end((err, res) => {
1743
+ if (err) { console.error("err: ", err); }
1744
+ res.should.have.status(200);
1745
+ res.body.should.be.a('object');
1746
+ expect(res.body.question).to.equal("Come funziona il prodotto aggiornato?");
1747
+ expect(res.body.namespace).to.equal(namespace_id);
1748
+ done();
1749
+ });
1750
+ });
1751
+ });
1752
+ });
1753
+ });
1754
+ });
2035
1755
 
2036
- // })
1756
+ it('count-unanswered-questions', (done) => {
1757
+ var email = "test-signup-" + Date.now() + "@email.com";
1758
+ var pwd = "pwd";
2037
1759
 
2038
- // })
2039
- // })
2040
- // })
2041
- // }).timeout(10000)
1760
+ userService.signup(email, pwd, "Test Firstname", "Test lastname").then(function (savedUser) {
1761
+ projectService.create("test-unanswered-count", savedUser._id).then(function (savedProject) {
1762
+ chai.request(server)
1763
+ .get('/' + savedProject._id + '/kb/namespace/all')
1764
+ .auth(email, pwd)
1765
+ .end((err, res) => {
1766
+ if (err) { console.error("err: ", err); }
1767
+ res.should.have.status(200);
1768
+ expect(res.body.length).to.equal(1);
2042
1769
 
1770
+ let namespace_id = res.body[0].id;
2043
1771
 
1772
+ // First add two questions
1773
+ let questions = [
1774
+ {
1775
+ namespace: namespace_id,
1776
+ question: "Come funziona il prodotto?"
1777
+ },
1778
+ {
1779
+ namespace: namespace_id,
1780
+ question: "Quali sono i prezzi?"
1781
+ }
1782
+ ];
1783
+
1784
+ Promise.all(questions.map(q =>
1785
+ chai.request(server)
1786
+ .post('/' + savedProject._id + '/kb/unanswered')
1787
+ .auth(email, pwd)
1788
+ .send(q)
1789
+ )).then(() => {
1790
+ // Then count them
1791
+ chai.request(server)
1792
+ .get('/' + savedProject._id + '/kb/unanswered/count?namespace=' + namespace_id)
1793
+ .auth(email, pwd)
1794
+ .end((err, res) => {
1795
+ if (err) { console.error("err: ", err); }
1796
+ res.should.have.status(200);
1797
+ res.body.should.be.a('object');
1798
+ expect(res.body.count).to.equal(2);
1799
+ done();
1800
+ });
1801
+ });
1802
+ });
1803
+ });
1804
+ });
1805
+ });
1806
+ });
2044
1807
 
1808
+ });