mirror of
https://github.com/discourse/discourse.git
synced 2025-05-24 00:41:16 +08:00
Revert "Rename all test files from JS -> ES6"
This reverts commit 2abe85b8344de1102c1589a9ac9421a8b296f2b5.
This commit is contained in:
@ -1,183 +0,0 @@
|
||||
import userSearch from "discourse/lib/user-search";
|
||||
import { CANCELLED_STATUS } from "discourse/lib/autocomplete";
|
||||
import pretender from "helpers/create-pretender";
|
||||
|
||||
QUnit.module("lib:user-search", {
|
||||
beforeEach() {
|
||||
const response = object => {
|
||||
return [200, { "Content-Type": "application/json" }, object];
|
||||
};
|
||||
|
||||
pretender.get("/u/search/users", request => {
|
||||
// special responder for per category search
|
||||
const categoryMatch = request.url.match(/category_id=([0-9]+)/);
|
||||
if (categoryMatch) {
|
||||
if (categoryMatch[1] === "3") {
|
||||
return response({});
|
||||
}
|
||||
return response({
|
||||
users: [
|
||||
{
|
||||
username: `category_${categoryMatch[1]}`,
|
||||
name: "category user",
|
||||
avatar_template:
|
||||
"https://avatars.discourse.org/v3/letter/t/41988e/{size}.png"
|
||||
}
|
||||
]
|
||||
});
|
||||
}
|
||||
|
||||
if (request.url.match(/no-results/)) {
|
||||
return response({ users: [] });
|
||||
}
|
||||
|
||||
return response({
|
||||
users: [
|
||||
{
|
||||
username: "TeaMoe",
|
||||
name: "TeaMoe",
|
||||
avatar_template:
|
||||
"https://avatars.discourse.org/v3/letter/t/41988e/{size}.png"
|
||||
},
|
||||
{
|
||||
username: "TeamOneJ",
|
||||
name: "J Cobb",
|
||||
avatar_template:
|
||||
"https://avatars.discourse.org/v3/letter/t/3d9bf3/{size}.png"
|
||||
},
|
||||
{
|
||||
username: "kudos",
|
||||
name: "Team Blogeto.com",
|
||||
avatar_template:
|
||||
"/user_avatar/meta.discourse.org/kudos/{size}/62185_1.png"
|
||||
},
|
||||
{
|
||||
username: "RosieLinda",
|
||||
name: "Linda Teaman",
|
||||
avatar_template:
|
||||
"https://avatars.discourse.org/v3/letter/r/bc8723/{size}.png"
|
||||
},
|
||||
{
|
||||
username: "legalatom",
|
||||
name: "Team LegalAtom",
|
||||
avatar_template:
|
||||
"https://avatars.discourse.org/v3/letter/l/a9a28c/{size}.png"
|
||||
},
|
||||
{
|
||||
username: "dzsat_team",
|
||||
name: "Dz Sat Dz Sat",
|
||||
avatar_template:
|
||||
"https://avatars.discourse.org/v3/letter/d/eb9ed0/{size}.png"
|
||||
}
|
||||
],
|
||||
groups: [
|
||||
{
|
||||
name: "bob",
|
||||
usernames: []
|
||||
},
|
||||
{
|
||||
name: "team",
|
||||
usernames: []
|
||||
}
|
||||
]
|
||||
});
|
||||
});
|
||||
}
|
||||
});
|
||||
|
||||
QUnit.test("it flushes cache when switching categories", async assert => {
|
||||
let results = await userSearch({ term: "hello", categoryId: 1 });
|
||||
assert.equal(results[0].username, "category_1");
|
||||
assert.equal(results.length, 1);
|
||||
|
||||
// this is cached ... so let's check the cache is good
|
||||
results = await userSearch({ term: "hello", categoryId: 1 });
|
||||
assert.equal(results[0].username, "category_1");
|
||||
assert.equal(results.length, 1);
|
||||
|
||||
results = await userSearch({ term: "hello", categoryId: 2 });
|
||||
assert.equal(results[0].username, "category_2");
|
||||
assert.equal(results.length, 1);
|
||||
});
|
||||
|
||||
QUnit.test(
|
||||
"it returns cancel when eager completing with no results",
|
||||
async assert => {
|
||||
// Do everything twice, to check the cache works correctly
|
||||
|
||||
for (let i = 0; i < 2; i++) {
|
||||
// No topic or category, will always cancel
|
||||
let result = await userSearch({ term: "" });
|
||||
assert.equal(result, CANCELLED_STATUS);
|
||||
}
|
||||
|
||||
for (let i = 0; i < 2; i++) {
|
||||
// Unsecured category, so has no recommendations
|
||||
let result = await userSearch({ term: "", categoryId: 3 });
|
||||
assert.equal(result, CANCELLED_STATUS);
|
||||
}
|
||||
|
||||
for (let i = 0; i < 2; i++) {
|
||||
// Secured category, will have 1 recommendation
|
||||
let results = await userSearch({ term: "", categoryId: 1 });
|
||||
assert.equal(results[0].username, "category_1");
|
||||
assert.equal(results.length, 1);
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
QUnit.test("it places groups unconditionally for exact match", async assert => {
|
||||
let results = await userSearch({ term: "Team" });
|
||||
assert.equal(results[results.length - 1]["name"], "team");
|
||||
});
|
||||
|
||||
QUnit.test("it strips @ from the beginning", async assert => {
|
||||
let results = await userSearch({ term: "@Team" });
|
||||
assert.equal(results[results.length - 1]["name"], "team");
|
||||
});
|
||||
|
||||
QUnit.test("it skips a search depending on punctuations", async assert => {
|
||||
let results;
|
||||
let skippedTerms = [
|
||||
"@sam s", // double space is not allowed
|
||||
"@sam;",
|
||||
"@sam,",
|
||||
"@sam:"
|
||||
];
|
||||
|
||||
for (let term of skippedTerms) {
|
||||
results = await userSearch({ term });
|
||||
assert.equal(results.length, 0);
|
||||
}
|
||||
|
||||
let allowedTerms = [
|
||||
"@sam sam", // double space is not allowed
|
||||
"@sam.sam",
|
||||
"@sam_sam",
|
||||
"@sam-sam",
|
||||
"@"
|
||||
];
|
||||
|
||||
let topicId = 100;
|
||||
|
||||
for (let term of allowedTerms) {
|
||||
results = await userSearch({ term, topicId });
|
||||
assert.equal(results.length, 6);
|
||||
}
|
||||
|
||||
results = await userSearch({ term: "sam@sam.com", allowEmails: true });
|
||||
// 6 + email
|
||||
assert.equal(results.length, 7);
|
||||
|
||||
results = await userSearch({ term: "sam+test@sam.com", allowEmails: true });
|
||||
assert.equal(results.length, 7);
|
||||
|
||||
results = await userSearch({ term: "sam@sam.com" });
|
||||
assert.equal(results.length, 0);
|
||||
|
||||
results = await userSearch({
|
||||
term: "no-results@example.com",
|
||||
allowEmails: true
|
||||
});
|
||||
assert.equal(results.length, 1);
|
||||
});
|
Reference in New Issue
Block a user