text: "use strict";
  
  const expect = require("chai").expect;
  const findChannels = require("../../../../../../client/js/libs/handlebars/ircmessageparser/findChannels");
  
  describe("findChannels", () => {
  	it("should find single letter channel", () => {
  		const input = "#a";
  		const expected = [{
  			channel: "#a",
  			start: 0,
  			end: 2,
  		}];
  
  		const actual = findChannels(input, ["#"], ["@", "+"]);
  
  		expect(actual).to.deep.equal(expected);
  	});
  
  	it("should find utf8 channels", () => {
  		const input = "#äöü";
  		const expected = [{
  			channel: "#äöü",
  			start: 0,
  			end: 4,
  		}];
  
  		const actual = findChannels(input, ["#"], ["@", "+"]);
  
  		expect(actual).to.deep.equal(expected);
  	});
  
  	it("should find inline channel", () => {
  		const input = "inline #channel text";
  		const expected = [{
  			channel: "#channel",
  			start: 7,
  			end: 15,
  		}];
  
  		const actual = findChannels(input, ["#"], ["@", "+"]);
  
  		expect(actual).to.deep.equal(expected);
  	});
  
  	it("should stop at \\0x07", () => {
  		const input = "#chan\x07nel";
  		const expected = [{
  			channel: "#chan",
  			start: 0,
  			end: 5,
  		}];
  
  		const actual = findChannels(input, ["#"], ["@", "+"]);
  
  		expect(actual).to.deep.equal(expected);
  	});
  
  	it("should allow classics pranks", () => {
  		const input = "#1,000";
  		const expected = [{
  			channel: "#1,000",
  			start: 0,
  			end: 6,
  		}];
  
  		const actual = findChannels(input, ["#"], ["@", "+"]);
  
  		expect(actual).to.deep.equal(expected);
  	});
  
  	it("should work with whois responses", () => {
  		const input = "@#a";
  		const expected = [{
  			channel: "#a",
  			start: 1,
  			end: 3,
  		}];
  
  		const actual = findChannels(input, ["#"], ["@", "+"]);
  
  		expect(actual).to.deep.equal(expected);
  	});
  
  	it("should work with IRCv3.1 multi-prefix", () => {
  		const input = "!@%+#a";
  		const expected = [{
  			channel: "#a",
  			start: 4,
  			end: 6,
  		}];
  
  		const actual = findChannels(input, ["#"], ["!", "@", "%", "+"]);
  
  		expect(actual).to.deep.equal(expected);
  	});
  
  	it("should work with custom channelPrefixes", () => {
  		const input = "@a";
  		const expected = [{
  			channel: "@a",
  			start: 0,
  			end: 2,
  		}];
  
  		const actual = findChannels(input, ["@"], ["#", "+"]);
  
  		expect(actual).to.deep.equal(expected);
  	});
  
  	it("should handle multiple channelPrefix correctly", () => {
  		const input = "##test";
  		const expected = [{
  			channel: "##test",
  			start: 0,
  			end: 6,
  		}];
  
  		const actual = findChannels(input, ["#"], ["@", "+"]);
  
  		expect(actual).to.deep.equal(expected);
  	});
  });
  