input: Write a python function to authenticate a user using username and password, and return a JWT token if successful.
  assert authenticate('valid_user', 'valid_password') == 'expected_jwt_token'
  assert authenticate('invalid_user', 'password') raises ValueError
  assert authenticate('valid_user', 'wrong_password') raises ValueError
output: import jwt
  import datetime
  
  # Sample user database
  users_db = {
      'valid_user': 'valid_password'
  }
  
  # Secret key for JWT encoding
  SECRET_KEY = 'your_secret_key'
  
  def authenticate(username, password):
      if username not in users_db or users_db[username] != password:
          raise ValueError('Invalid username or password')
      
      # Create JWT token
      payload = {
          'username': username,
          'exp': datetime.datetime.utcnow() + datetime.timedelta(hours=1)
      }
      
      token = jwt.encode(payload, SECRET_KEY, algorithm='HS256')
      return token