Skip to content

Commit c2603ad

Browse files
committed
Merge remote-tracking branch 'remotes/pull/3' into main
2 parents f0320c0 + 003a797 commit c2603ad

8 files changed

Lines changed: 173 additions & 4 deletions

File tree

package.json

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,18 @@
11
{
22
"name": "ace-samples",
33
"version": "1.0.0",
4+
"scripts": {
5+
"build:ace-builds-parcel": "cd samples/ace-builds-parcel && npm run build",
6+
"build:ace-builds-vitejs": "cd samples/ace-builds-vitejs && npm run build",
7+
"build:ace-builds-webpack": "cd samples/ace-builds-webpack && npm run build",
8+
"build:ace-code-parcel": "cd samples/ace-code-parcel && npm run build",
9+
"build:ace-code-vitejs": "cd samples/ace-code-vitejs && npm run build",
10+
"build:ace-code-webpack": "cd samples/ace-code-webpack && npm run build",
11+
"build:react-ace-example": "cd samples/react-ace-example && npm run build",
12+
"build": "npm run build:ace-builds-parcel && npm run build:ace-builds-vitejs && npm run build:ace-builds-webpack && npm run build:ace-code-parcel && npm run build:ace-code-vitejs && npm run build:ace-code-webpack && npm run build:react-ace-example",
13+
"start-test-server": "http-server --cors='*' samples",
14+
"test": "mocha --timeout=5000"
15+
},
416
"workspaces": [
517
"./samples/*"
618
],
@@ -10,6 +22,12 @@
1022
"typescript": "^5.3.2"
1123
},
1224
"devDependencies": {
13-
"process": "^0.11.10"
25+
"@types/chai": "^4.3.4",
26+
"@types/mocha": "^5.2.7",
27+
"chai": "^4.3.7",
28+
"mocha": "^10.2.0",
29+
"process": "^0.11.10",
30+
"puppeteer": "^19.9.1",
31+
"rimraf": "^5.0.1"
1432
}
1533
}

samples/ace-builds-parcel/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"name": "ace-builds-parcel",
33
"version": "1.0.0",
44
"scripts": {
5+
"build": "parcel build ./index.html --public-url ./",
56
"start": "parcel ./index.html"
67
},
78
"devDependencies": {
Lines changed: 5 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,8 @@
1-
import { defineConfig } from 'vite'
1+
import {defineConfig} from 'vite'
22

33
export default defineConfig({
4-
base: '',
4+
base: '',
5+
worker: {
6+
format: "es",
7+
}
58
})

samples/ace-code-parcel/package.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22
"name": "ace-code-parcel",
33
"version": "1.0.0",
44
"scripts": {
5+
"build": "parcel build ./index.html --public-url ./",
56
"start": "parcel ./index.html"
67
},
78
"devDependencies": {

samples/ace-code-vitejs/vite.config.js

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,4 +2,7 @@ import { defineConfig } from 'vite'
22

33
export default defineConfig({
44
base: '',
5+
worker: {
6+
format: "es",
7+
}
58
})

samples/index.html

Lines changed: 44 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,44 @@
1+
<!DOCTYPE html>
2+
<html lang="en">
3+
<head>
4+
<meta charset="UTF-8">
5+
<title>Ace samples demo</title>
6+
<style>
7+
body {
8+
background-color: #f2f2f2;
9+
}
10+
11+
a {
12+
color: #0077ff;
13+
text-decoration: none;
14+
}
15+
16+
a:hover {
17+
color: #ff7700;
18+
}
19+
20+
li {
21+
padding: 8px;
22+
border-bottom: 1px solid #ddd;
23+
}
24+
25+
li:hover {
26+
background-color: #ddd;
27+
}
28+
29+
</style>
30+
</head>
31+
<body>
32+
<ul>
33+
<li><a href="ace-builds-cdn" id="ace-builds-cdn">Ace builds cdn</a></li>
34+
<li><a href="ace-builds-parcel/dist" id="ace-builds-parcel">Ace builds parcel</a></li>
35+
<li><a href="ace-builds-vitejs/dist" id="ace-builds-vitejs">Ace builds vitejs</a></li>
36+
<li><a href="ace-builds-webpack/build" id="ace-builds-webpack">Ace builds webpack</a></li>
37+
<li><a href="ace-code-parcel/dist" id="ace-code-parcel">Ace code parcel</a></li>
38+
<li><a href="ace-code-vitejs/dist" id="ace-code-vitejs">Ace code vitejs</a></li>
39+
<li><a href="ace-code-webpack/build" id="ace-code-webpack">Ace code webpack</a></li>
40+
<li><a href="react-ace-example/dist" id="react-ace-example">React ace example</a></li>
41+
</ul>
42+
43+
</body>
44+
</html>

samples/react-ace-example/package.json

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,7 @@
33
"version": "1.0.0",
44
"scripts": {
55
"dev": "vite",
6-
"build": "vite build"
6+
"build": "vite build --base ./"
77
},
88
"devDependencies": {
99
"ace-linters": "^0.4.1",

test/general-ui.tests.js

Lines changed: 99 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,99 @@
1+
var {expect} = require("chai");
2+
var puppeteer = require("puppeteer");
3+
4+
const opts = {
5+
headless: "new"
6+
};
7+
8+
describe("General ui tests", function () {
9+
let browser;
10+
let page;
11+
let errors = [];
12+
let sampleSelectorIDs = [
13+
"ace-builds-cdn",
14+
"ace-builds-parcel",
15+
"ace-builds-vitejs",
16+
"ace-builds-webpack",
17+
"ace-code-parcel",
18+
"ace-code-vitejs",
19+
"ace-code-webpack",
20+
"react-ace-example"
21+
];
22+
23+
before(async function () {
24+
browser = await puppeteer.launch(opts);
25+
page = (await browser.pages())[0];
26+
page.on("console", function(err) {
27+
if (err.type() == "error" && err.location().url != "http://localhost:8080/favicon.ico")
28+
errors.push(err.text());
29+
}).on('pageerror', ({message}) => errors.push(message));
30+
await page.goto("http://localhost:8080", {
31+
waitUntil: 'domcontentloaded',
32+
});
33+
34+
shouldNotHaveErrors();
35+
});
36+
37+
function shouldNotHaveErrors() {
38+
try {
39+
expect(errors.length).to.eql(0);
40+
} catch (e) {
41+
errors.length = 0;
42+
throw e;
43+
}
44+
}
45+
46+
function checkSampleResponse(response) {
47+
shouldNotHaveErrors();
48+
}
49+
50+
async function shouldGoToSamplePage(href) {
51+
var response = await page.goto("http://localhost:8080/" + href, {
52+
waitUntil: 'domcontentloaded',
53+
});
54+
55+
try {
56+
checkSampleResponse(response);
57+
await page.goto("http://localhost:8080", {
58+
waitUntil: 'domcontentloaded',
59+
});
60+
} catch (e) {
61+
await page.goto("http://localhost:8080", {
62+
waitUntil: 'domcontentloaded',
63+
});
64+
throw e;
65+
}
66+
}
67+
68+
async function shouldOpenClickedLink(hrefSelectorID) {
69+
const navigationPromise = page.waitForNavigation();
70+
71+
hrefSelectorID = "#" + hrefSelectorID;
72+
await page.waitForSelector(hrefSelectorID)
73+
await page.click(hrefSelectorID);
74+
75+
var response = await navigationPromise;
76+
77+
try {
78+
checkSampleResponse(response);
79+
await page.goBack({
80+
waitUntil: 'domcontentloaded',
81+
});
82+
} catch (e) {
83+
await page.goBack({
84+
waitUntil: 'domcontentloaded',
85+
});
86+
throw e;
87+
}
88+
}
89+
90+
sampleSelectorIDs.forEach((selectorID) => {
91+
it(selectorID, async function () {
92+
await shouldOpenClickedLink(selectorID);
93+
})
94+
})
95+
96+
after(async function () {
97+
await browser.close();
98+
});
99+
});

0 commit comments

Comments
 (0)