47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.7 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const {test} = require("supertape")
 | |
| const tryToCatch = require("try-to-catch")
 | |
| const assert = require("assert")
 | |
| const data = require("../../test/data")
 | |
| const {userToSimName} = require("./user-to-mxid")
 | |
| 
 | |
| test("user2name: cannot create user for a webhook", async t => {
 | |
|    const [error] = await tryToCatch(() => userToSimName({discriminator: "0000"}))
 | |
|    t.ok(error instanceof assert.AssertionError, error.message)
 | |
| })
 | |
| 
 | |
| test("user2name: works on normal name", t => {
 | |
|    t.equal(userToSimName({username: "Harry Styles!", discriminator: "0001"}), "harry_styles")
 | |
| })
 | |
| 
 | |
| test("user2name: works on emojis", t => {
 | |
|    t.equal(userToSimName({username: "🍪 Cookie Monster 🍪", discriminator: "0001"}), "cookie_monster")
 | |
| })
 | |
| 
 | |
| test("user2name: works on single emoji at the end", t => {
 | |
|    t.equal(userToSimName({username: "Melody 🎵", discriminator: "2192"}), "melody")
 | |
| })
 | |
| 
 | |
| test("user2name: works on crazy name", t => {
 | |
|    t.equal(userToSimName({username: "*** D3 &W (89) _7//-", discriminator: "0001"}), "d3_w_89__7//")
 | |
| })
 | |
| 
 | |
| test("user2name: adds discriminator if name is unavailable (old tag format)", t => {
 | |
|    t.equal(userToSimName({username: "BOT$", discriminator: "1234"}), "bot1234")
 | |
| })
 | |
| 
 | |
| test("user2name: adds number suffix if name is unavailable (new username format)", t => {
 | |
|    t.equal(userToSimName({username: "bot", discriminator: "0"}), "bot2")
 | |
| })
 | |
| 
 | |
| test("user2name: uses ID if name becomes too short", t => {
 | |
|    t.equal(userToSimName({username: "f***", discriminator: "0001", id: "9"}), "9")
 | |
| })
 | |
| 
 | |
| test("user2name: uses ID when name has only disallowed characters", t => {
 | |
|    t.equal(userToSimName({username: "!@#$%^&*", discriminator: "0001", id: "9"}), "9")
 | |
| })
 | |
| 
 | |
| test("user2name: works on special user", t => {
 | |
| 	t.equal(userToSimName(data.user.clyde_ai), "clyde_ai")
 | |
| })
 | 
